Merge branch 'nvme-5.4' of git://git.infradead.org/nvme into for-linus
[sfrench/cifs-2.6.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 "tuner-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                 - Overlay scaling problems (application error?)
2120                 - Composite S-Video untested.
2121                 From: Konrad Rzepecki <hannibal@megapolis.pl>
2122                 */
2123                 .name           = "Kworld Xpert TV PVR7134",
2124                 .audio_clock    = 0x00187de7,
2125                 .tuner_type     = TUNER_TENA_9533_DI,
2126                 .radio_type     = TUNER_TEA5767,
2127                 .tuner_addr     = 0x61,
2128                 .radio_addr     = 0x60,
2129                 .gpiomask       = 0x0700,
2130                 .inputs = {{
2131                         .type = SAA7134_INPUT_TV,
2132                         .vmux   = 1,
2133                         .amux   = TV,
2134                         .gpio   = 0x000,
2135                 },{
2136                         .type = SAA7134_INPUT_COMPOSITE1,
2137                         .vmux   = 3,
2138                         .amux   = LINE1,
2139                         .gpio   = 0x200,                /* gpio by DScaler */
2140                 },{
2141                         .type = SAA7134_INPUT_SVIDEO,
2142                         .vmux   = 0,
2143                         .amux   = LINE1,
2144                         .gpio   = 0x200,
2145                 }},
2146                 .radio = {
2147                         .type = SAA7134_INPUT_RADIO,
2148                         .amux   = LINE1,
2149                         .gpio   = 0x100,
2150                 },
2151                 .mute = {
2152                         .type = SAA7134_INPUT_MUTE,
2153                         .amux = TV,
2154                         .gpio = 0x000,
2155                 },
2156         },
2157         [SAA7134_BOARD_FLYTV_DIGIMATRIX] = {
2158                 .name           = "FlyTV mini Asus Digimatrix",
2159                 .audio_clock    = 0x00200000,
2160                 .tuner_type     = TUNER_LG_TALN,
2161                 .radio_type     = UNSET,
2162                 .tuner_addr     = ADDR_UNSET,
2163                 .radio_addr     = ADDR_UNSET,
2164                 .inputs         = {{
2165                         .type = SAA7134_INPUT_TV,
2166                         .vmux = 1,
2167                         .amux = TV,
2168                 },{
2169                         .type = SAA7134_INPUT_TV_MONO,
2170                         .vmux = 1,
2171                         .amux = LINE2,
2172                 },{
2173                         .type = SAA7134_INPUT_COMPOSITE1,
2174                         .vmux = 0,
2175                         .amux = LINE2,
2176                 },{
2177                         .type = SAA7134_INPUT_COMPOSITE2,
2178                         .vmux = 3,
2179                         .amux = LINE2,
2180                 },{
2181                         .type = SAA7134_INPUT_SVIDEO,
2182                         .vmux = 8,
2183                         .amux = LINE2,
2184                 }},
2185                 .radio = {
2186                         .type = SAA7134_INPUT_RADIO,            /* radio unconfirmed */
2187                         .amux = LINE2,
2188                 },
2189         },
2190         [SAA7134_BOARD_KWORLD_TERMINATOR] = {
2191                 /* Kworld V-Stream Studio TV Terminator */
2192                 /* "James Webb <jrwebb@qwest.net> */
2193                 .name           = "V-Stream Studio TV Terminator",
2194                 .audio_clock    = 0x00187de7,
2195                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2196                 .radio_type     = UNSET,
2197                 .tuner_addr     = ADDR_UNSET,
2198                 .radio_addr     = ADDR_UNSET,
2199                 .gpiomask       = 1 << 21,
2200                 .inputs         = {{
2201                         .type = SAA7134_INPUT_TV,
2202                         .vmux = 1,
2203                         .amux = TV,
2204                         .gpio = 0x0000000,
2205                 },{
2206                         .type = SAA7134_INPUT_COMPOSITE1,
2207                         .vmux = 3,
2208                         .amux = LINE2,
2209                         .gpio = 0x0000000,
2210                 },{
2211                         .type = SAA7134_INPUT_SVIDEO,
2212                         .vmux = 8,
2213                         .amux = LINE2,
2214                         .gpio = 0x0000000,
2215                 }},
2216                 .radio = {
2217                         .type = SAA7134_INPUT_RADIO,
2218                         .amux = TV,
2219                         .gpio = 0x0200000,
2220                 },
2221         },
2222         [SAA7134_BOARD_YUAN_TUN900] = {
2223                 /* FIXME:
2224                  * S-Video and composite sources untested.
2225                  * Radio not working.
2226                  * Remote control not yet implemented.
2227                  * From : codemaster@webgeeks.be */
2228                 .name           = "Yuan TUN-900 (saa7135)",
2229                 .audio_clock    = 0x00187de7,
2230                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2231                 .radio_type     = UNSET,
2232                 .tuner_addr= ADDR_UNSET,
2233                 .radio_addr= ADDR_UNSET,
2234                 .gpiomask       = 0x00010003,
2235                 .inputs         = {{
2236                         .type = SAA7134_INPUT_TV,
2237                         .vmux = 1,
2238                         .amux = TV,
2239                         .gpio = 0x01,
2240                 },{
2241                         .type = SAA7134_INPUT_COMPOSITE1,
2242                         .vmux = 0,
2243                         .amux = LINE2,
2244                         .gpio = 0x02,
2245                 },{
2246                         .type = SAA7134_INPUT_SVIDEO,
2247                         .vmux = 6,
2248                         .amux = LINE2,
2249                         .gpio = 0x02,
2250                 }},
2251                 .radio = {
2252                         .type = SAA7134_INPUT_RADIO,
2253                         .amux = LINE1,
2254                         .gpio = 0x00010003,
2255                 },
2256                 .mute = {
2257                         .type = SAA7134_INPUT_MUTE,
2258                         .amux = TV,
2259                         .gpio = 0x01,
2260                 },
2261         },
2262         [SAA7134_BOARD_BEHOLD_409FM] = {
2263                 /* <http://tuner.beholder.ru>, Sergey <skiv@orel.ru> */
2264                 /*       Beholder Intl. Ltd. 2008      */
2265                 /*Dmitry Belimov <d.belimov@gmail.com> */
2266                 .name           = "Beholder BeholdTV 409 FM",
2267                 .audio_clock    = 0x00187de7,
2268                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
2269                 .radio_type     = UNSET,
2270                 .tuner_addr     = ADDR_UNSET,
2271                 .radio_addr     = ADDR_UNSET,
2272                 .tda9887_conf   = TDA9887_PRESENT,
2273                 .gpiomask       = 0x00008000,
2274                 .inputs         = {{
2275                           .type = SAA7134_INPUT_TV,
2276                           .vmux = 3,
2277                           .amux = TV,
2278                 },{
2279                           .type = SAA7134_INPUT_COMPOSITE1,
2280                           .vmux = 1,
2281                           .amux = LINE1,
2282                 },{
2283                           .type = SAA7134_INPUT_SVIDEO,
2284                           .vmux = 8,
2285                           .amux = LINE1,
2286                 }},
2287                 .radio = {
2288                           .type = SAA7134_INPUT_RADIO,
2289                           .amux = LINE2,
2290                 },
2291         },
2292         [SAA7134_BOARD_GOTVIEW_7135] = {
2293                 /* Mike Baikov <mike@baikov.com> */
2294                 /* Andrey Cvetcov <ays14@yandex.ru> */
2295                 .name            = "GoTView 7135 PCI",
2296                 .audio_clock     = 0x00187de7,
2297                 .tuner_type      = TUNER_PHILIPS_FM1216ME_MK3,
2298                 .radio_type      = UNSET,
2299                 .tuner_addr      = ADDR_UNSET,
2300                 .radio_addr      = ADDR_UNSET,
2301                 .tda9887_conf    = TDA9887_PRESENT,
2302                 .gpiomask        = 0x00200003,
2303                 .inputs          = {{
2304                         .type = SAA7134_INPUT_TV,
2305                         .vmux = 1,
2306                         .amux = TV,
2307                         .gpio = 0x00200003,
2308                 },{
2309                         .type = SAA7134_INPUT_TV_MONO,
2310                         .vmux = 1,
2311                         .amux = LINE2,
2312                         .gpio = 0x00200003,
2313                 },{
2314                         .type = SAA7134_INPUT_COMPOSITE1,
2315                         .vmux = 3,
2316                         .amux = LINE1,
2317                         .gpio = 0x00200003,
2318                 },{
2319                         .type = SAA7134_INPUT_SVIDEO,
2320                         .vmux = 8,
2321                         .amux = LINE1,
2322                         .gpio = 0x00200003,
2323                 }},
2324                 .radio = {
2325                         .type = SAA7134_INPUT_RADIO,
2326                         .amux = LINE2,
2327                         .gpio = 0x00200003,
2328                 },
2329                 .mute = {
2330                         .type = SAA7134_INPUT_MUTE,
2331                         .amux = TV,
2332                         .gpio = 0x00200003,
2333                 },
2334         },
2335         [SAA7134_BOARD_PHILIPS_EUROPA] = {
2336                 .name           = "Philips EUROPA V3 reference design",
2337                 .audio_clock    = 0x00187de7,
2338                 .tuner_type     = TUNER_PHILIPS_TD1316,
2339                 .radio_type     = UNSET,
2340                 .tuner_addr     = 0x61,
2341                 .radio_addr     = ADDR_UNSET,
2342                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2343                 .mpeg           = SAA7134_MPEG_DVB,
2344                 .inputs = {{
2345                         .type = SAA7134_INPUT_TV,
2346                         .vmux   = 3,
2347                         .amux   = TV,
2348                 },{
2349                         .type = SAA7134_INPUT_COMPOSITE1,
2350                         .vmux   = 0,
2351                         .amux   = LINE2,
2352                 },{
2353                         .type = SAA7134_INPUT_SVIDEO,
2354                         .vmux   = 8,
2355                         .amux   = LINE2,
2356                 }},
2357         },
2358         [SAA7134_BOARD_VIDEOMATE_DVBT_300] = {
2359                 .name           = "Compro Videomate DVB-T300",
2360                 .audio_clock    = 0x00187de7,
2361                 .tuner_type     = TUNER_PHILIPS_TD1316,
2362                 .radio_type     = UNSET,
2363                 .tuner_addr     = 0x61,
2364                 .radio_addr     = ADDR_UNSET,
2365                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
2366                 .mpeg           = SAA7134_MPEG_DVB,
2367                 .inputs = {{
2368                         .type = SAA7134_INPUT_TV,
2369                         .vmux   = 3,
2370                         .amux   = TV,
2371                 },{
2372                         .type = SAA7134_INPUT_COMPOSITE1,
2373                         .vmux   = 1,
2374                         .amux   = LINE2,
2375                 },{
2376                         .type = SAA7134_INPUT_SVIDEO,
2377                         .vmux   = 8,
2378                         .amux   = LINE2,
2379                 }},
2380         },
2381         [SAA7134_BOARD_VIDEOMATE_DVBT_200] = {
2382                 .name           = "Compro Videomate DVB-T200",
2383                 .tuner_type     = TUNER_ABSENT,
2384                 .audio_clock    = 0x00187de7,
2385                 .radio_type     = UNSET,
2386                 .tuner_addr     = ADDR_UNSET,
2387                 .radio_addr     = ADDR_UNSET,
2388                 .mpeg           = SAA7134_MPEG_DVB,
2389                 .inputs = {{
2390                         .type = SAA7134_INPUT_COMPOSITE1,
2391                         .vmux   = 0,
2392                         .amux   = LINE1,
2393                 },{
2394                         .type = SAA7134_INPUT_SVIDEO,
2395                         .vmux   = 8,
2396                         .amux   = LINE1,
2397                 }},
2398         },
2399         [SAA7134_BOARD_RTD_VFG7350] = {
2400                 .name           = "RTD Embedded Technologies VFG7350",
2401                 .audio_clock    = 0x00200000,
2402                 .tuner_type     = TUNER_ABSENT,
2403                 .radio_type     = UNSET,
2404                 .tuner_addr     = ADDR_UNSET,
2405                 .radio_addr     = ADDR_UNSET,
2406                 .empress_addr   = 0x21,
2407                 .inputs         = {{
2408                         .type = SAA7134_INPUT_COMPOSITE0,
2409                         .vmux   = 0,
2410                         .amux   = LINE1,
2411                 },{
2412                         .type = SAA7134_INPUT_COMPOSITE1,
2413                         .vmux   = 1,
2414                         .amux   = LINE2,
2415                 },{
2416                         .type = SAA7134_INPUT_COMPOSITE2,
2417                         .vmux   = 2,
2418                         .amux   = LINE1,
2419                 },{
2420                         .type = SAA7134_INPUT_COMPOSITE3,
2421                         .vmux   = 3,
2422                         .amux   = LINE2,
2423                 },{
2424                         .type = SAA7134_INPUT_SVIDEO0,
2425
2426                         .vmux   = 8,
2427                         .amux   = LINE1,
2428                 },{
2429                         .type = SAA7134_INPUT_SVIDEO1,
2430                         .vmux   = 9,
2431                         .amux   = LINE2,
2432                 }},
2433                 .mpeg           = SAA7134_MPEG_EMPRESS,
2434                 .video_out      = CCIR656,
2435                 .vid_port_opts  = ( SET_T_CODE_POLARITY_NON_INVERTED |
2436                                     SET_CLOCK_NOT_DELAYED |
2437                                     SET_CLOCK_INVERTED |
2438                                     SET_VSYNC_OFF ),
2439         },
2440         [SAA7134_BOARD_RTD_VFG7330] = {
2441                 .name           = "RTD Embedded Technologies VFG7330",
2442                 .audio_clock    = 0x00200000,
2443                 .tuner_type     = TUNER_ABSENT,
2444                 .radio_type     = UNSET,
2445                 .tuner_addr     = ADDR_UNSET,
2446                 .radio_addr     = ADDR_UNSET,
2447                 .inputs         = {{
2448                         .type = SAA7134_INPUT_COMPOSITE0,
2449                         .vmux   = 0,
2450                         .amux   = LINE1,
2451                 },{
2452                         .type = SAA7134_INPUT_COMPOSITE1,
2453                         .vmux   = 1,
2454                         .amux   = LINE2,
2455                 },{
2456                         .type = SAA7134_INPUT_COMPOSITE2,
2457                         .vmux   = 2,
2458                         .amux   = LINE1,
2459                 },{
2460                         .type = SAA7134_INPUT_COMPOSITE3,
2461                         .vmux   = 3,
2462                         .amux   = LINE2,
2463                 },{
2464                         .type = SAA7134_INPUT_SVIDEO0,
2465                         .vmux   = 8,
2466                         .amux   = LINE1,
2467                 },{
2468                         .type = SAA7134_INPUT_SVIDEO1,
2469                         .vmux   = 9,
2470                         .amux   = LINE2,
2471                 }},
2472         },
2473         [SAA7134_BOARD_FLYTVPLATINUM_MINI2] = {
2474                 .name           = "LifeView FlyTV Platinum Mini2",
2475                 .audio_clock    = 0x00200000,
2476                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2477                 .radio_type     = UNSET,
2478                 .tuner_addr     = ADDR_UNSET,
2479                 .radio_addr     = ADDR_UNSET,
2480
2481                 .inputs         = {{
2482                         .type = SAA7134_INPUT_TV,
2483                         .vmux = 1,
2484                         .amux = TV,
2485                 },{
2486                         .type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2487                         .vmux = 0,
2488                         .amux = LINE2,
2489                 },{
2490                         .type = SAA7134_INPUT_COMPOSITE,
2491                         .vmux = 3,
2492                         .amux = LINE2,
2493                 },{
2494                         .type = SAA7134_INPUT_SVIDEO,
2495                         .vmux = 8,
2496                         .amux = LINE2,
2497                 }},
2498         },
2499         [SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180] = {
2500                 /* Michael Krufky <mkrufky@linuxtv.org>
2501                  * Uses Alps Electric TDHU2, containing NXT2004 ATSC Decoder
2502                  * AFAIK, there is no analog demod, thus,
2503                  * no support for analog television.
2504                  */
2505                 .name           = "AVerMedia AVerTVHD MCE A180",
2506                 .audio_clock    = 0x00187de7,
2507                 .tuner_type     = TUNER_ABSENT,
2508                 .radio_type     = UNSET,
2509                 .tuner_addr     = ADDR_UNSET,
2510                 .radio_addr     = ADDR_UNSET,
2511                 .mpeg           = SAA7134_MPEG_DVB,
2512                 .inputs         = {{
2513                         .type = SAA7134_INPUT_COMPOSITE1,
2514                         .vmux = 3,
2515                         .amux = LINE2,
2516                 },{
2517                         .type = SAA7134_INPUT_SVIDEO,
2518                         .vmux = 8,
2519                         .amux = LINE2,
2520                 }},
2521         },
2522         [SAA7134_BOARD_MONSTERTV_MOBILE] = {
2523                 .name           = "SKNet MonsterTV Mobile",
2524                 .audio_clock    = 0x00187de7,
2525                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2526                 .radio_type     = UNSET,
2527                 .tuner_addr     = ADDR_UNSET,
2528                 .radio_addr     = ADDR_UNSET,
2529
2530                 .inputs         = {{
2531                           .type = SAA7134_INPUT_TV,
2532                           .vmux = 1,
2533                           .amux = TV,
2534                 },{
2535                           .type = SAA7134_INPUT_COMPOSITE1,
2536                           .vmux = 3,
2537                           .amux = LINE1,
2538                 },{
2539                           .type = SAA7134_INPUT_SVIDEO,
2540                           .vmux = 6,
2541                           .amux = LINE1,
2542                 }},
2543         },
2544         [SAA7134_BOARD_PINNACLE_PCTV_110i] = {
2545                .name           = "Pinnacle PCTV 40i/50i/110i (saa7133)",
2546                 .audio_clock    = 0x00187de7,
2547                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2548                 .radio_type     = UNSET,
2549                 .tuner_addr     = ADDR_UNSET,
2550                 .radio_addr     = ADDR_UNSET,
2551                 .gpiomask       = 0x080200000,
2552                 .inputs         = { {
2553                         .type = SAA7134_INPUT_TV,
2554                         .vmux = 4,
2555                         .amux = TV,
2556                 }, {
2557                         .type = SAA7134_INPUT_COMPOSITE1,
2558                         .vmux = 1,
2559                         .amux = LINE2,
2560                 }, {
2561                         .type = SAA7134_INPUT_COMPOSITE2,
2562                         .vmux = 0,
2563                         .amux = LINE2,
2564                 }, {
2565                         .type = SAA7134_INPUT_SVIDEO,
2566                         .vmux = 8,
2567                         .amux = LINE2,
2568                 } },
2569                 .radio = {
2570                         .type = SAA7134_INPUT_RADIO,
2571                         .amux = TV,
2572                         .gpio = 0x0200000,
2573                 },
2574         },
2575         [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = {
2576                 .name           = "ASUSTeK P7131 Dual",
2577                 .audio_clock    = 0x00187de7,
2578                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2579                 .radio_type     = UNSET,
2580                 .tuner_addr     = ADDR_UNSET,
2581                 .radio_addr     = ADDR_UNSET,
2582                 .gpiomask       = 1 << 21,
2583                 .mpeg           = SAA7134_MPEG_DVB,
2584                 .inputs         = {{
2585                         .type = SAA7134_INPUT_TV,
2586                         .vmux = 1,
2587                         .amux = TV,
2588                         .gpio = 0x0000000,
2589                 },{
2590                         .type = SAA7134_INPUT_COMPOSITE1,
2591                         .vmux = 3,
2592                         .amux = LINE2,
2593                         .gpio = 0x0200000,
2594                 },{
2595                         .type = SAA7134_INPUT_COMPOSITE2,
2596                         .vmux = 0,
2597                         .amux = LINE2,
2598                         .gpio = 0x0200000,
2599                 },{
2600                         .type = SAA7134_INPUT_SVIDEO,
2601                         .vmux = 8,
2602                         .amux = LINE2,
2603                         .gpio = 0x0200000,
2604                 }},
2605                 .radio = {
2606                         .type = SAA7134_INPUT_RADIO,
2607                         .amux = TV,
2608                         .gpio = 0x0200000,
2609                 },
2610         },
2611         [SAA7134_BOARD_SEDNA_PC_TV_CARDBUS] = {
2612                 /* Paul Tom Zalac <pzalac@gmail.com> */
2613                 /* Pavel Mihaylov <bin@bash.info> */
2614                 .name           = "Sedna/MuchTV PC TV Cardbus TV/Radio (ITO25 Rev:2B)",
2615                                 /* Sedna/MuchTV (OEM) Cardbus TV Tuner */
2616                 .audio_clock    = 0x00187de7,
2617                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2618                 .radio_type     = UNSET,
2619                 .tuner_addr     = ADDR_UNSET,
2620                 .radio_addr     = ADDR_UNSET,
2621                 .gpiomask       = 0xe880c0,
2622                 .inputs         = {{
2623                         .type = SAA7134_INPUT_TV,
2624                         .vmux = 3,
2625                         .amux = TV,
2626                 },{
2627                         .type = SAA7134_INPUT_COMPOSITE1,
2628                         .vmux = 1,
2629                         .amux = LINE1,
2630                 },{
2631                         .type = SAA7134_INPUT_SVIDEO,
2632                         .vmux = 6,
2633                         .amux = LINE1,
2634                 }},
2635                 .radio = {
2636                         .type = SAA7134_INPUT_RADIO,
2637                         .amux = LINE2,
2638                 },
2639         },
2640         [SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV] = {
2641                 /* "Cyril Lacoux (Yack)" <clacoux@ifeelgood.org> */
2642                 .name           = "ASUS Digimatrix TV",
2643                 .audio_clock    = 0x00200000,
2644                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
2645                 .tda9887_conf   = TDA9887_PRESENT,
2646                 .radio_type     = UNSET,
2647                 .tuner_addr     = ADDR_UNSET,
2648                 .radio_addr     = ADDR_UNSET,
2649                 .inputs         = {{
2650                         .type = SAA7134_INPUT_TV,
2651                         .vmux = 1,
2652                         .amux = TV,
2653                 },{
2654                         .type = SAA7134_INPUT_COMPOSITE1,
2655                         .vmux = 3,
2656                         .amux = LINE1,
2657                 },{
2658                         .type = SAA7134_INPUT_SVIDEO,
2659                         .vmux = 8,
2660                         .amux = LINE1,
2661                 }},
2662         },
2663         [SAA7134_BOARD_PHILIPS_TIGER] = {
2664                 .name           = "Philips Tiger reference design",
2665                 .audio_clock    = 0x00187de7,
2666                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2667                 .radio_type     = UNSET,
2668                 .tuner_addr     = ADDR_UNSET,
2669                 .radio_addr     = ADDR_UNSET,
2670                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
2671                 .mpeg           = SAA7134_MPEG_DVB,
2672                 .gpiomask       = 0x0200000,
2673                 .inputs = {{
2674                         .type = SAA7134_INPUT_TV,
2675                         .vmux   = 1,
2676                         .amux   = TV,
2677                 },{
2678                         .type = SAA7134_INPUT_COMPOSITE1,
2679                         .vmux   = 3,
2680                         .amux   = LINE1,
2681                 },{
2682                         .type = SAA7134_INPUT_SVIDEO,
2683                         .vmux   = 8,
2684                         .amux   = LINE1,
2685                 }},
2686                 .radio = {
2687                         .type = SAA7134_INPUT_RADIO,
2688                         .amux   = TV,
2689                         .gpio   = 0x0200000,
2690                 },
2691         },
2692         [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = {
2693                 .name           = "MSI TV@Anywhere plus",
2694                 .audio_clock    = 0x00187de7,
2695                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2696                 .radio_type     = UNSET,
2697                 .tuner_addr     = ADDR_UNSET,
2698                 .radio_addr     = ADDR_UNSET,
2699                 .gpiomask       = 1 << 21,
2700                 .inputs = {{
2701                         .type = SAA7134_INPUT_TV,
2702                         .vmux   = 1,
2703                         .amux   = TV,
2704                 },{
2705                         .type = SAA7134_INPUT_COMPOSITE,
2706                         .vmux   = 3,
2707                         .amux   = LINE2,        /* unconfirmed, taken from Philips driver */
2708                 },{
2709                         .type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2710                         .vmux   = 0,            /* untested */
2711                         .amux   = LINE2,
2712                 },{
2713                         .type = SAA7134_INPUT_SVIDEO,
2714                         .vmux   = 8,
2715                         .amux   = LINE2,
2716                 }},
2717                 .radio = {
2718                         .type = SAA7134_INPUT_RADIO,
2719                         .amux   = TV,
2720                         .gpio   = 0x0200000,
2721                 },
2722         },
2723         [SAA7134_BOARD_CINERGY250PCI] = {
2724                 /* remote-control does not work. The signal about a
2725                    key press comes in via gpio, but the key code
2726                    doesn't. Neither does it have an i2c remote control
2727                    interface. */
2728                 .name           = "Terratec Cinergy 250 PCI TV",
2729                 .audio_clock    = 0x00187de7,
2730                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2731                 .radio_type     = UNSET,
2732                 .tuner_addr     = ADDR_UNSET,
2733                 .radio_addr     = ADDR_UNSET,
2734                 .gpiomask       = 0x80200000,
2735                 .inputs         = {{
2736                         .type = SAA7134_INPUT_TV,
2737                         .vmux = 1,
2738                         .amux = TV,
2739                 },{
2740                         .type = SAA7134_INPUT_SVIDEO,  /* NOT tested */
2741                         .vmux = 8,
2742                         .amux = LINE1,
2743                 }},
2744                 .radio = {
2745                         .type = SAA7134_INPUT_RADIO,
2746                         .amux   = TV,
2747                         .gpio   = 0x0200000,
2748                 },
2749         },
2750         [SAA7134_BOARD_FLYDVB_TRIO] = {
2751                 /* LifeView LR319 FlyDVB Trio */
2752                 /* Peter Missel <peter.missel@onlinehome.de> */
2753                 .name           = "LifeView FlyDVB Trio",
2754                 .audio_clock    = 0x00200000,
2755                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2756                 .radio_type     = UNSET,
2757                 .tuner_addr     = ADDR_UNSET,
2758                 .radio_addr     = ADDR_UNSET,
2759                 .gpiomask       = 0x00200000,
2760                 .mpeg           = SAA7134_MPEG_DVB,
2761                 .inputs         = {{
2762                         .type = SAA7134_INPUT_TV,       /* Analog broadcast/cable TV */
2763                         .vmux = 1,
2764                         .amux = TV,
2765                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2766                 },{
2767                         .type = SAA7134_INPUT_SVIDEO,
2768                         .vmux = 8,
2769                         .amux = LINE2,
2770                 },{
2771                         .type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2772                         .vmux = 0,
2773                         .amux = LINE2,
2774                 },{
2775                         .type = SAA7134_INPUT_COMPOSITE2,
2776                         .vmux = 3,
2777                         .amux = LINE2,
2778                 }},
2779                 .radio = {
2780                         .type = SAA7134_INPUT_RADIO,
2781                         .amux = TV,
2782                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
2783                 },
2784         },
2785         [SAA7134_BOARD_AVERMEDIA_777] = {
2786                 .name           = "AverTV DVB-T 777",
2787                 .audio_clock    = 0x00187de7,
2788                 .tuner_type     = TUNER_ABSENT,
2789                 .radio_type     = UNSET,
2790                 .tuner_addr     = ADDR_UNSET,
2791                 .radio_addr     = ADDR_UNSET,
2792                 .mpeg           = SAA7134_MPEG_DVB,
2793                 .inputs = {{
2794                         .type = SAA7134_INPUT_COMPOSITE1,
2795                         .vmux   = 1,
2796                         .amux   = LINE1,
2797                 },{
2798                         .type = SAA7134_INPUT_SVIDEO,
2799                         .vmux   = 8,
2800                         .amux   = LINE1,
2801                 }},
2802         },
2803         [SAA7134_BOARD_FLYDVBT_LR301] = {
2804                 /* LifeView FlyDVB-T */
2805                 /* Giampiero Giancipoli <gianci@libero.it> */
2806                 .name           = "LifeView FlyDVB-T / Genius VideoWonder DVB-T",
2807                 .audio_clock    = 0x00200000,
2808                 .tuner_type     = TUNER_ABSENT,
2809                 .radio_type     = UNSET,
2810                 .tuner_addr     = ADDR_UNSET,
2811                 .radio_addr     = ADDR_UNSET,
2812                 .mpeg           = SAA7134_MPEG_DVB,
2813                 .inputs         = {{
2814                         .type = SAA7134_INPUT_COMPOSITE1,
2815                         .vmux = 3,
2816                         .amux = LINE2,
2817                 },{
2818                         .type = SAA7134_INPUT_SVIDEO,
2819                         .vmux = 8,
2820                         .amux = LINE2,
2821                 }},
2822         },
2823         [SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331] = {
2824                 .name           = "ADS Instant TV Duo Cardbus PTV331",
2825                 .audio_clock    = 0x00200000,
2826                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2827                 .radio_type     = UNSET,
2828                 .tuner_addr     = ADDR_UNSET,
2829                 .radio_addr     = ADDR_UNSET,
2830                 .mpeg           = SAA7134_MPEG_DVB,
2831                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2832                 .inputs = {{
2833                         .type = SAA7134_INPUT_TV,
2834                         .vmux   = 1,
2835                         .amux   = TV,
2836                         .gpio   = 0x00200000,
2837                 }},
2838         },
2839         [SAA7134_BOARD_TEVION_DVBT_220RF] = {
2840                 .name           = "Tevion/KWorld DVB-T 220RF",
2841                 .audio_clock    = 0x00187de7,
2842                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2843                 .radio_type     = UNSET,
2844                 .tuner_addr     = ADDR_UNSET,
2845                 .radio_addr     = ADDR_UNSET,
2846                 .mpeg           = SAA7134_MPEG_DVB,
2847                 .gpiomask       = 1 << 21,
2848                 .inputs = {{
2849                         .type = SAA7134_INPUT_TV,
2850                         .vmux   = 1,
2851                         .amux   = TV,
2852                 },{
2853                         .type = SAA7134_INPUT_COMPOSITE1,
2854                         .vmux   = 3,
2855                         .amux   = LINE1,
2856                 },{
2857                         .type = SAA7134_INPUT_COMPOSITE2,
2858                         .vmux   = 0,
2859                         .amux   = LINE1,
2860                 },{
2861                         .type = SAA7134_INPUT_SVIDEO,
2862                         .vmux   = 8,
2863                         .amux   = LINE1,
2864                 }},
2865                 .radio = {
2866                         .type = SAA7134_INPUT_RADIO,
2867                         .amux   = TV,
2868                         .gpio   = 0x0200000,
2869                 },
2870         },
2871         [SAA7134_BOARD_KWORLD_DVBT_210] = {
2872                 .name           = "KWorld DVB-T 210",
2873                 .audio_clock    = 0x00187de7,
2874                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2875                 .radio_type     = UNSET,
2876                 .tuner_addr     = ADDR_UNSET,
2877                 .radio_addr     = ADDR_UNSET,
2878                 .mpeg           = SAA7134_MPEG_DVB,
2879                 .gpiomask       = 1 << 21,
2880                 .inputs = {{
2881                         .type = SAA7134_INPUT_TV,
2882                         .vmux   = 1,
2883                         .amux   = TV,
2884                 },{
2885                         .type = SAA7134_INPUT_COMPOSITE1,
2886                         .vmux   = 3,
2887                         .amux   = LINE1,
2888                 },{
2889                         .type = SAA7134_INPUT_SVIDEO,
2890                         .vmux   = 8,
2891                         .amux   = LINE1,
2892                 }},
2893                 .radio = {
2894                         .type = SAA7134_INPUT_RADIO,
2895                         .amux   = TV,
2896                         .gpio   = 0x0200000,
2897                 },
2898         },
2899         [SAA7134_BOARD_KWORLD_ATSC110] = {
2900                 .name           = "Kworld ATSC110/115",
2901                 .audio_clock    = 0x00187de7,
2902                 .tuner_type     = TUNER_PHILIPS_TUV1236D,
2903                 .radio_type     = UNSET,
2904                 .tuner_addr     = ADDR_UNSET,
2905                 .radio_addr     = ADDR_UNSET,
2906                 .tda9887_conf   = TDA9887_PRESENT,
2907                 .mpeg           = SAA7134_MPEG_DVB,
2908                 .inputs         = {{
2909                         .type = SAA7134_INPUT_TV,
2910                         .vmux = 1,
2911                         .amux = TV,
2912                 },{
2913                         .type = SAA7134_INPUT_COMPOSITE1,
2914                         .vmux = 3,
2915                         .amux = LINE2,
2916                 },{
2917                         .type = SAA7134_INPUT_SVIDEO,
2918                         .vmux = 8,
2919                         .amux = LINE2,
2920                 }},
2921         },
2922         [SAA7134_BOARD_AVERMEDIA_A169_B] = {
2923                 /* AVerMedia A169  */
2924                 /* Rickard Osser <ricky@osser.se>  */
2925                 /* This card has two saa7134 chips on it,
2926                    but only one of them is currently working. */
2927                 .name           = "AVerMedia A169 B",
2928                 .audio_clock    = 0x02187de7,
2929                 .tuner_type     = TUNER_LG_TALN,
2930                 .radio_type     = UNSET,
2931                 .tuner_addr     = ADDR_UNSET,
2932                 .radio_addr     = ADDR_UNSET,
2933                 .tda9887_conf   = TDA9887_PRESENT,
2934                 .gpiomask       = 0x0a60000,
2935         },
2936         [SAA7134_BOARD_AVERMEDIA_A169_B1] = {
2937                 /* AVerMedia A169 */
2938                 /* Rickard Osser <ricky@osser.se> */
2939                 .name           = "AVerMedia A169 B1",
2940                 .audio_clock    = 0x02187de7,
2941                 .tuner_type     = TUNER_LG_TALN,
2942                 .radio_type     = UNSET,
2943                 .tuner_addr     = ADDR_UNSET,
2944                 .radio_addr     = ADDR_UNSET,
2945                 .tda9887_conf   = TDA9887_PRESENT,
2946                 .gpiomask       = 0xca60000,
2947                 .inputs         = {{
2948                         .type = SAA7134_INPUT_TV,
2949                         .vmux = 4,
2950                         .amux = TV,
2951                         .gpio = 0x04a61000,
2952                 },{
2953                         .type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2954                         .vmux = 1,
2955                         .amux = LINE2,
2956                 },{
2957                         .type = SAA7134_INPUT_SVIDEO,
2958                         .vmux = 9,           /* 9 is correct as S-VIDEO1 according to a169.inf! */
2959                         .amux = LINE1,
2960                 }},
2961         },
2962         [SAA7134_BOARD_MD7134_BRIDGE_2] = {
2963                 /* The second saa7134 on this card only serves as DVB-S host bridge */
2964                 .name           = "Medion 7134 Bridge #2",
2965                 .audio_clock    = 0x00187de7,
2966                 .radio_type     = UNSET,
2967                 .tuner_addr     = ADDR_UNSET,
2968                 .radio_addr     = ADDR_UNSET,
2969                 .mpeg           = SAA7134_MPEG_DVB,
2970         },
2971         [SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS] = {
2972                 .name           = "LifeView FlyDVB-T Hybrid Cardbus/MSI TV @nywhere A/D NB",
2973                 .audio_clock    = 0x00200000,
2974                 .tuner_type     = TUNER_PHILIPS_TDA8290,
2975                 .radio_type     = UNSET,
2976                 .tuner_addr     = ADDR_UNSET,
2977                 .radio_addr     = ADDR_UNSET,
2978                 .mpeg           = SAA7134_MPEG_DVB,
2979                 .gpiomask       = 0x00600000, /* Bit 21 0=Radio, Bit 22 0=TV */
2980                 .inputs         = {{
2981                         .type = SAA7134_INPUT_TV,
2982                         .vmux = 1,
2983                         .amux = TV,
2984                         .gpio = 0x200000,       /* GPIO21=High for TV input */
2985                 },{
2986                         .type = SAA7134_INPUT_SVIDEO,
2987                         .vmux = 8,
2988                         .amux = LINE2,
2989                 },{
2990                         .type = SAA7134_INPUT_COMPOSITE_OVER_SVIDEO,
2991                         .vmux = 0,
2992                         .amux = LINE2,
2993                 },{
2994                         .type = SAA7134_INPUT_COMPOSITE,
2995                         .vmux = 3,
2996                         .amux = LINE2,
2997                 }},
2998                 .radio = {
2999                         .type = SAA7134_INPUT_RADIO,
3000                         .amux = TV,
3001                         .gpio = 0x000000,       /* GPIO21=Low for FM radio antenna */
3002                 },
3003         },
3004         [SAA7134_BOARD_FLYVIDEO3000_NTSC] = {
3005                 /* "Zac Bowling" <zac@zacbowling.com> */
3006                 .name           = "LifeView FlyVIDEO3000 (NTSC)",
3007                 .audio_clock    = 0x00200000,
3008                 .tuner_type     = TUNER_PHILIPS_NTSC,
3009                 .radio_type     = UNSET,
3010                 .tuner_addr     = ADDR_UNSET,
3011                 .radio_addr     = ADDR_UNSET,
3012
3013                 .gpiomask       = 0xe000,
3014                 .inputs         = {{
3015                         .type = SAA7134_INPUT_TV,
3016                         .vmux = 1,
3017                         .amux = TV,
3018                         .gpio = 0x8000,
3019                 },{
3020                         .type = SAA7134_INPUT_TV_MONO,
3021                         .vmux = 1,
3022                         .amux = LINE2,
3023                         .gpio = 0x0000,
3024                 },{
3025                         .type = SAA7134_INPUT_COMPOSITE1,
3026                         .vmux = 0,
3027                         .amux = LINE2,
3028                         .gpio = 0x4000,
3029                 },{
3030                         .type = SAA7134_INPUT_COMPOSITE2,
3031                         .vmux = 3,
3032                         .amux = LINE2,
3033                         .gpio = 0x4000,
3034                 },{
3035                         .type = SAA7134_INPUT_SVIDEO,
3036                         .vmux = 8,
3037                         .amux = LINE2,
3038                         .gpio = 0x4000,
3039                 }},
3040                 .radio = {
3041                         .type = SAA7134_INPUT_RADIO,
3042                         .amux = LINE2,
3043                         .gpio = 0x2000,
3044                 },
3045                         .mute = {
3046                         .type = SAA7134_INPUT_MUTE,
3047                         .amux = TV,
3048                         .gpio = 0x8000,
3049                 },
3050         },
3051         [SAA7134_BOARD_MEDION_MD8800_QUADRO] = {
3052                 .name           = "Medion Md8800 Quadro",
3053                 .audio_clock    = 0x00187de7,
3054                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3055                 .radio_type     = UNSET,
3056                 .tuner_addr     = ADDR_UNSET,
3057                 .radio_addr     = ADDR_UNSET,
3058                 .mpeg           = SAA7134_MPEG_DVB,
3059                 .inputs = {{
3060                         .type = SAA7134_INPUT_TV,
3061                         .vmux   = 1,
3062                         .amux   = TV,
3063                 },{
3064                         .type = SAA7134_INPUT_COMPOSITE1,
3065                         .vmux   = 0,
3066                         .amux   = LINE1,
3067                 },{
3068                         .type = SAA7134_INPUT_SVIDEO,
3069                         .vmux   = 8,
3070                         .amux   = LINE1,
3071                 }},
3072         },
3073         [SAA7134_BOARD_FLYDVBS_LR300] = {
3074                 /* LifeView FlyDVB-s */
3075                 /* Igor M. Liplianin <liplianin@tut.by> */
3076                 .name           = "LifeView FlyDVB-S /Acorp TV134DS",
3077                 .audio_clock    = 0x00200000,
3078                 .tuner_type     = TUNER_ABSENT,
3079                 .radio_type     = UNSET,
3080                 .tuner_addr     = ADDR_UNSET,
3081                 .radio_addr     = ADDR_UNSET,
3082                 .mpeg           = SAA7134_MPEG_DVB,
3083                 .inputs         = {{
3084                         .type = SAA7134_INPUT_COMPOSITE1,
3085                         .vmux = 3,
3086                         .amux = LINE1,
3087                 },{
3088                         .type = SAA7134_INPUT_SVIDEO,
3089                         .vmux = 8,
3090                         .amux = LINE1,
3091                 }},
3092         },
3093         [SAA7134_BOARD_PROTEUS_2309] = {
3094                 .name           = "Proteus Pro 2309",
3095                 .audio_clock    = 0x00187de7,
3096                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3097                 .radio_type     = UNSET,
3098                 .tuner_addr     = ADDR_UNSET,
3099                 .radio_addr     = ADDR_UNSET,
3100                 .tda9887_conf   = TDA9887_PRESENT,
3101                 .inputs         = {{
3102                         .type = SAA7134_INPUT_TV,
3103                         .vmux = 1,
3104                         .amux = LINE2,
3105                 },{
3106                         .type = SAA7134_INPUT_COMPOSITE1,
3107                         .vmux = 0,
3108                         .amux = LINE2,
3109                 },{
3110                         .type = SAA7134_INPUT_COMPOSITE2,
3111                         .vmux = 3,
3112                         .amux = LINE2,
3113                 },{
3114                         .type = SAA7134_INPUT_SVIDEO,
3115                         .vmux = 8,
3116                         .amux = LINE2,
3117                 }},
3118                 .mute = {
3119                         .type = SAA7134_INPUT_MUTE,
3120                         .amux = LINE1,
3121                 },
3122         },
3123         [SAA7134_BOARD_AVERMEDIA_A16AR] = {
3124                 /* Petr Baudis <pasky@ucw.cz> */
3125                 .name           = "AVerMedia TV Hybrid A16AR",
3126                 .audio_clock    = 0x187de7,
3127                 .tuner_type     = TUNER_PHILIPS_TD1316, /* untested */
3128                 .radio_type     = TUNER_TEA5767, /* untested */
3129                 .tuner_addr     = ADDR_UNSET,
3130                 .radio_addr     = 0x60,
3131                 .tda9887_conf   = TDA9887_PRESENT,
3132                 .mpeg           = SAA7134_MPEG_DVB,
3133                 .inputs         = {{
3134                         .type = SAA7134_INPUT_TV,
3135                         .vmux = 1,
3136                         .amux = TV,
3137                 },{
3138                         .type = SAA7134_INPUT_COMPOSITE1,
3139                         .vmux = 3,
3140                         .amux = LINE2,
3141                 },{
3142                         .type = SAA7134_INPUT_SVIDEO,
3143                         .vmux = 8,
3144                         .amux = LINE1,
3145                 }},
3146                 .radio = {
3147                         .type = SAA7134_INPUT_RADIO,
3148                         .amux = LINE1,
3149                 },
3150         },
3151         [SAA7134_BOARD_ASUS_EUROPA2_HYBRID] = {
3152                 .name           = "Asus Europa2 OEM",
3153                 .audio_clock    = 0x00187de7,
3154                 .tuner_type     = TUNER_PHILIPS_FMD1216ME_MK3,
3155                 .radio_type     = UNSET,
3156                 .tuner_addr     = ADDR_UNSET,
3157                 .radio_addr     = ADDR_UNSET,
3158                 .tda9887_conf   = TDA9887_PRESENT| TDA9887_PORT1_ACTIVE | TDA9887_PORT2_ACTIVE,
3159                 .mpeg           = SAA7134_MPEG_DVB,
3160                 .inputs = {{
3161                         .type = SAA7134_INPUT_TV,
3162                         .vmux   = 3,
3163                         .amux   = TV,
3164                 },{
3165                         .type = SAA7134_INPUT_COMPOSITE1,
3166                         .vmux   = 4,
3167                         .amux   = LINE2,
3168                 },{
3169                         .type = SAA7134_INPUT_SVIDEO,
3170                         .vmux   = 8,
3171                         .amux   = LINE2,
3172                 }},
3173                 .radio = {
3174                         .type = SAA7134_INPUT_RADIO,
3175                         .amux   = LINE1,
3176                 },
3177         },
3178         [SAA7134_BOARD_PINNACLE_PCTV_310i] = {
3179                 .name           = "Pinnacle PCTV 310i",
3180                 .audio_clock    = 0x00187de7,
3181                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3182                 .radio_type     = UNSET,
3183                 .tuner_addr     = ADDR_UNSET,
3184                 .radio_addr     = ADDR_UNSET,
3185                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3186                 .mpeg           = SAA7134_MPEG_DVB,
3187                 .gpiomask       = 0x000200000,
3188                 .inputs         = {{
3189                         .type = SAA7134_INPUT_TV,
3190                         .vmux = 4,
3191                         .amux = TV,
3192                 },{
3193                         .type = SAA7134_INPUT_COMPOSITE1,
3194                         .vmux = 1,
3195                         .amux = LINE2,
3196                 },{
3197                         .type = SAA7134_INPUT_COMPOSITE2,
3198                         .vmux = 0,
3199                         .amux = LINE2,
3200                 },{
3201                         .type = SAA7134_INPUT_SVIDEO,
3202                         .vmux = 8,
3203                         .amux = LINE2,
3204                 }},
3205                 .radio = {
3206                         .type = SAA7134_INPUT_RADIO,
3207                         .amux   = TV,
3208                         .gpio   = 0x0200000,
3209                 },
3210         },
3211         [SAA7134_BOARD_AVERMEDIA_STUDIO_507] = {
3212                 /* Mikhail Fedotov <mo_fedotov@mail.ru> */
3213                 .name           = "Avermedia AVerTV Studio 507",
3214                 .audio_clock    = 0x00187de7,
3215                 .tuner_type     = TUNER_PHILIPS_FM1256_IH3,
3216                 .radio_type     = UNSET,
3217                 .tuner_addr     = ADDR_UNSET,
3218                 .radio_addr     = ADDR_UNSET,
3219                 .tda9887_conf   = TDA9887_PRESENT,
3220                 .gpiomask       = 0x03,
3221                 .inputs         = {{
3222                         .type = SAA7134_INPUT_TV,
3223                         .vmux = 1,
3224                         .amux = TV,
3225                         .gpio = 0x00,
3226                 },{
3227                         .type = SAA7134_INPUT_COMPOSITE1,
3228                         .vmux = 0,
3229                         .amux = LINE2,
3230                         .gpio = 0x00,
3231                 },{
3232                         .type = SAA7134_INPUT_COMPOSITE2,
3233                         .vmux = 3,
3234                         .amux = LINE2,
3235                         .gpio = 0x00,
3236                 },{
3237                         .type = SAA7134_INPUT_SVIDEO,
3238                         .vmux = 8,
3239                         .amux = LINE2,
3240                         .gpio = 0x00,
3241                 }},
3242                 .radio = {
3243                         .type = SAA7134_INPUT_RADIO,
3244                         .amux = LINE2,
3245                         .gpio = 0x01,
3246                 },
3247                 .mute  = {
3248                         .type = SAA7134_INPUT_MUTE,
3249                         .amux = LINE1,
3250                         .gpio = 0x00,
3251                 },
3252         },
3253         [SAA7134_BOARD_VIDEOMATE_DVBT_200A] = {
3254                 /* Francis Barber <fedora@barber-family.id.au> */
3255                 .name           = "Compro Videomate DVB-T200A",
3256                 .audio_clock    = 0x00187de7,
3257                 .tuner_type     = TUNER_ABSENT,
3258                 .radio_type     = UNSET,
3259                 .tuner_addr     = ADDR_UNSET,
3260                 .radio_addr     = ADDR_UNSET,
3261                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
3262                 .mpeg           = SAA7134_MPEG_DVB,
3263                 .inputs = {{
3264                         .type = SAA7134_INPUT_TV,
3265                         .vmux   = 3,
3266                         .amux   = TV,
3267                 },{
3268                         .type = SAA7134_INPUT_COMPOSITE1,
3269                         .vmux   = 1,
3270                         .amux   = LINE2,
3271                 },{
3272                         .type = SAA7134_INPUT_SVIDEO,
3273                         .vmux   = 8,
3274                         .amux   = LINE2,
3275                 }},
3276         },
3277         [SAA7134_BOARD_HAUPPAUGE_HVR1110] = {
3278                 /* Thomas Genty <tomlohave@gmail.com> */
3279                 /* David Bentham <db260179@hotmail.com> */
3280                 .name           = "Hauppauge WinTV-HVR1110 DVB-T/Hybrid",
3281                 .audio_clock    = 0x00187de7,
3282                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3283                 .radio_type     = UNSET,
3284                 .tuner_addr     = ADDR_UNSET,
3285                 .radio_addr     = ADDR_UNSET,
3286                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_ON },
3287                 .mpeg           = SAA7134_MPEG_DVB,
3288                 .gpiomask       = 0x0200100,
3289                 .inputs         = {{
3290                         .type = SAA7134_INPUT_TV,
3291                         .vmux = 1,
3292                         .amux = TV,
3293                         .gpio = 0x0000100,
3294                 }, {
3295                         .type = SAA7134_INPUT_COMPOSITE1,
3296                         .vmux = 3,
3297                         .amux = LINE1,
3298                 }, {
3299                         .type = SAA7134_INPUT_SVIDEO,
3300                         .vmux = 8,
3301                         .amux = LINE1,
3302                 } },
3303                 .radio = {
3304                         .type = SAA7134_INPUT_RADIO,
3305                         .amux = TV,
3306                         .gpio = 0x0200100,
3307                 },
3308         },
3309         [SAA7134_BOARD_HAUPPAUGE_HVR1150] = {
3310                 .name           = "Hauppauge WinTV-HVR1150 ATSC/QAM-Hybrid",
3311                 .audio_clock    = 0x00187de7,
3312                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3313                 .radio_type     = UNSET,
3314                 .tuner_addr     = ADDR_UNSET,
3315                 .radio_addr     = ADDR_UNSET,
3316                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3317                 .mpeg           = SAA7134_MPEG_DVB,
3318                 .ts_type        = SAA7134_MPEG_TS_SERIAL,
3319                 .ts_force_val   = 1,
3320                 .gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3321                 .inputs         = {{
3322                         .type = SAA7134_INPUT_TV,
3323                         .vmux = 1,
3324                         .amux = TV,
3325                         .gpio = 0x0000100,
3326                 }, {
3327                         .type = SAA7134_INPUT_COMPOSITE1,
3328                         .vmux = 3,
3329                         .amux = LINE1,
3330                 }, {
3331                         .type = SAA7134_INPUT_SVIDEO,
3332                         .vmux = 8,
3333                         .amux = LINE1,
3334                 } },
3335                 .radio = {
3336                         .type = SAA7134_INPUT_RADIO,
3337                         .amux = TV,
3338                         .gpio = 0x0800100, /* GPIO 23 HI for FM */
3339                 },
3340         },
3341         [SAA7134_BOARD_HAUPPAUGE_HVR1120] = {
3342                 .name           = "Hauppauge WinTV-HVR1120 DVB-T/Hybrid",
3343                 .audio_clock    = 0x00187de7,
3344                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3345                 .radio_type     = UNSET,
3346                 .tuner_addr     = ADDR_UNSET,
3347                 .radio_addr     = ADDR_UNSET,
3348                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
3349                 .mpeg           = SAA7134_MPEG_DVB,
3350                 .ts_type        = SAA7134_MPEG_TS_SERIAL,
3351                 .gpiomask       = 0x0800100, /* GPIO 21 is an INPUT */
3352                 .inputs         = {{
3353                         .type = SAA7134_INPUT_TV,
3354                         .vmux = 1,
3355                         .amux = TV,
3356                         .gpio = 0x0000100,
3357                 }, {
3358                         .type = SAA7134_INPUT_COMPOSITE1,
3359                         .vmux = 3,
3360                         .amux = LINE1,
3361                 }, {
3362                         .type = SAA7134_INPUT_SVIDEO,
3363                         .vmux = 8,
3364                         .amux = LINE1,
3365                 } },
3366                 .radio = {
3367                         .type = SAA7134_INPUT_RADIO,
3368                         .amux = TV,
3369                         .gpio = 0x0800100, /* GPIO 23 HI for FM */
3370                 },
3371         },
3372         [SAA7134_BOARD_CINERGY_HT_PCMCIA] = {
3373                 .name           = "Terratec Cinergy HT PCMCIA",
3374                 .audio_clock    = 0x00187de7,
3375                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3376                 .radio_type     = UNSET,
3377                 .tuner_addr     = ADDR_UNSET,
3378                 .radio_addr     = ADDR_UNSET,
3379                 .mpeg           = SAA7134_MPEG_DVB,
3380                 .inputs = {{
3381                         .type = SAA7134_INPUT_TV,
3382                         .vmux   = 1,
3383                         .amux   = TV,
3384                 },{
3385                         .type = SAA7134_INPUT_COMPOSITE1,
3386                         .vmux   = 0,
3387                         .amux   = LINE1,
3388                 },{
3389                         .type = SAA7134_INPUT_SVIDEO,
3390                         .vmux   = 6,
3391                         .amux   = LINE1,
3392                 }},
3393         },
3394         [SAA7134_BOARD_ENCORE_ENLTV] = {
3395         /* Steven Walter <stevenrwalter@gmail.com>
3396            Juan Pablo Sormani <sorman@gmail.com> */
3397                 .name           = "Encore ENLTV",
3398                 .audio_clock    = 0x00200000,
3399                 .tuner_type     = TUNER_TNF_5335MF,
3400                 .radio_type     = UNSET,
3401                 .tuner_addr     = ADDR_UNSET,
3402                 .radio_addr     = ADDR_UNSET,
3403                 .inputs         = {{
3404                         .type = SAA7134_INPUT_TV,
3405                         .vmux = 1,
3406                         .amux = 3,
3407                 },{
3408                         .type = SAA7134_INPUT_TV_MONO,
3409                         .vmux = 7,
3410                         .amux = 4,
3411                 },{
3412                         .type = SAA7134_INPUT_COMPOSITE1,
3413                         .vmux = 3,
3414                         .amux = 2,
3415                 },{
3416                         .type = SAA7134_INPUT_SVIDEO,
3417                         .vmux = 0,
3418                         .amux = 2,
3419                 }},
3420                 .radio = {
3421                         .type = SAA7134_INPUT_RADIO,
3422                         .amux = LINE2,
3423 /*                      .gpio = 0x00300001,*/
3424                         .gpio = 0x20000,
3425
3426                 },
3427                 .mute = {
3428                         .type = SAA7134_INPUT_MUTE,
3429                         .amux = 0,
3430                 },
3431         },
3432         [SAA7134_BOARD_ENCORE_ENLTV_FM] = {
3433   /*    Juan Pablo Sormani <sorman@gmail.com> */
3434                 .name           = "Encore ENLTV-FM",
3435                 .audio_clock    = 0x00200000,
3436                 .tuner_type     = TUNER_PHILIPS_FCV1236D,
3437                 .radio_type     = UNSET,
3438                 .tuner_addr     = ADDR_UNSET,
3439                 .radio_addr     = ADDR_UNSET,
3440                 .inputs         = {{
3441                         .type = SAA7134_INPUT_TV,
3442                         .vmux = 1,
3443                         .amux = 3,
3444                 },{
3445                         .type = SAA7134_INPUT_TV_MONO,
3446                         .vmux = 7,
3447                         .amux = 4,
3448                 },{
3449                         .type = SAA7134_INPUT_COMPOSITE1,
3450                         .vmux = 3,
3451                         .amux = 2,
3452                 },{
3453                         .type = SAA7134_INPUT_SVIDEO,
3454                         .vmux = 0,
3455                         .amux = 2,
3456                 }},
3457                 .radio = {
3458                         .type = SAA7134_INPUT_RADIO,
3459                         .amux = LINE2,
3460                         .gpio = 0x20000,
3461
3462                 },
3463                 .mute = {
3464                         .type = SAA7134_INPUT_MUTE,
3465                         .amux = 0,
3466                 },
3467         },
3468         [SAA7134_BOARD_ENCORE_ENLTV_FM53] = {
3469                 .name           = "Encore ENLTV-FM v5.3",
3470                 .audio_clock    = 0x00200000,
3471                 .tuner_type     = TUNER_TNF_5335MF,
3472                 .radio_type     = UNSET,
3473                 .tuner_addr     = ADDR_UNSET,
3474                 .radio_addr     = ADDR_UNSET,
3475                 .gpiomask       = 0x7000,
3476                 .inputs         = { {
3477                         .type = SAA7134_INPUT_TV,
3478                         .vmux = 1,
3479                         .amux = 1,
3480                         .gpio = 0x50000,
3481                 }, {
3482                         .type = SAA7134_INPUT_COMPOSITE1,
3483                         .vmux = 3,
3484                         .amux = 2,
3485                         .gpio = 0x2000,
3486                 }, {
3487                         .type = SAA7134_INPUT_SVIDEO,
3488                         .vmux = 8,
3489                         .amux = 2,
3490                         .gpio = 0x2000,
3491                 } },
3492                 .radio = {
3493                         .type = SAA7134_INPUT_RADIO,
3494                         .vmux = 1,
3495                         .amux = 1,
3496                 },
3497                 .mute = {
3498                         .type = SAA7134_INPUT_MUTE,
3499                         .gpio = 0xf000,
3500                         .amux = 0,
3501                 },
3502         },
3503         [SAA7134_BOARD_ENCORE_ENLTV_FM3] = {
3504                 .name           = "Encore ENLTV-FM 3",
3505                 .audio_clock    = 0x02187de7,
3506                 .tuner_type     = TUNER_TENA_TNF_5337,
3507                 .radio_type     = TUNER_TEA5767,
3508                 .tuner_addr     = 0x61,
3509                 .radio_addr     = 0x60,
3510                 .inputs         = { {
3511                         .type = SAA7134_INPUT_TV,
3512                         .vmux = 1,
3513                         .amux = LINE2,
3514                 }, {
3515                         .type = SAA7134_INPUT_COMPOSITE1,
3516                         .vmux = 3,
3517                         .amux = LINE1,
3518                 }, {
3519                         .type = SAA7134_INPUT_SVIDEO,
3520                         .vmux = 8,
3521                         .amux = LINE1,
3522                 } },
3523                 .radio = {
3524                         .type = SAA7134_INPUT_RADIO,
3525                         .vmux = 1,
3526                         .amux = LINE1,
3527                 },
3528                 .mute = {
3529                         .type = SAA7134_INPUT_MUTE,
3530                         .amux = LINE1,
3531                         .gpio = 0x43000,
3532                 },
3533         },
3534         [SAA7134_BOARD_CINERGY_HT_PCI] = {
3535                 .name           = "Terratec Cinergy HT PCI",
3536                 .audio_clock    = 0x00187de7,
3537                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3538                 .radio_type     = UNSET,
3539                 .tuner_addr     = ADDR_UNSET,
3540                 .radio_addr     = ADDR_UNSET,
3541                 .mpeg           = SAA7134_MPEG_DVB,
3542                 .inputs = {{
3543                         .type = SAA7134_INPUT_TV,
3544                         .vmux   = 1,
3545                         .amux   = TV,
3546                 },{
3547                         .type = SAA7134_INPUT_COMPOSITE1,
3548                         .vmux   = 0,
3549                         .amux   = LINE1,
3550                 },{
3551                         .type = SAA7134_INPUT_SVIDEO,
3552                         .vmux   = 6,
3553                         .amux   = LINE1,
3554                 }},
3555         },
3556         [SAA7134_BOARD_PHILIPS_TIGER_S] = {
3557                 .name           = "Philips Tiger - S Reference design",
3558                 .audio_clock    = 0x00187de7,
3559                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3560                 .radio_type     = UNSET,
3561                 .tuner_addr     = ADDR_UNSET,
3562                 .radio_addr     = ADDR_UNSET,
3563                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3564                 .mpeg           = SAA7134_MPEG_DVB,
3565                 .gpiomask       = 0x0200000,
3566                 .inputs = {{
3567                         .type = SAA7134_INPUT_TV,
3568                         .vmux   = 1,
3569                         .amux   = TV,
3570                 },{
3571                         .type = SAA7134_INPUT_COMPOSITE1,
3572                         .vmux   = 3,
3573                         .amux   = LINE1,
3574                 },{
3575                         .type = SAA7134_INPUT_SVIDEO,
3576                         .vmux   = 8,
3577                         .amux   = LINE1,
3578                 }},
3579                 .radio = {
3580                         .type = SAA7134_INPUT_RADIO,
3581                         .amux   = TV,
3582                         .gpio   = 0x0200000,
3583                 },
3584         },
3585         [SAA7134_BOARD_AVERMEDIA_M102] = {
3586                 .name           = "Avermedia M102",
3587                 .audio_clock    = 0x00187de7,
3588                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3589                 .radio_type     = UNSET,
3590                 .tuner_addr     = ADDR_UNSET,
3591                 .radio_addr     = ADDR_UNSET,
3592                 .gpiomask       = 1<<21,
3593                 .inputs         = {{
3594                         .type = SAA7134_INPUT_TV,
3595                         .vmux = 1,
3596                         .amux = TV,
3597                 },{
3598                         .type = SAA7134_INPUT_COMPOSITE1,
3599                         .vmux = 0,
3600                         .amux = LINE2,
3601                 },{
3602                         .type = SAA7134_INPUT_SVIDEO,
3603                         .vmux = 6,
3604                         .amux = LINE2,
3605                 }},
3606         },
3607         [SAA7134_BOARD_ASUS_P7131_4871] = {
3608                 .name           = "ASUS P7131 4871",
3609                 .audio_clock    = 0x00187de7,
3610                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3611                 .radio_type     = UNSET,
3612                 .tuner_addr     = ADDR_UNSET,
3613                 .radio_addr     = ADDR_UNSET,
3614                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3615                 .mpeg           = SAA7134_MPEG_DVB,
3616                 .gpiomask       = 0x0200000,
3617                 .inputs = {{
3618                         .type = SAA7134_INPUT_TV,
3619                         .vmux   = 1,
3620                         .amux   = TV,
3621                         .gpio   = 0x0200000,
3622                 },{
3623                         .type = SAA7134_INPUT_COMPOSITE1,
3624                         .vmux = 3,
3625                         .amux = LINE2,
3626                         .gpio = 0x0200000,
3627                 },{
3628                         .type = SAA7134_INPUT_COMPOSITE2,
3629                         .vmux = 0,
3630                         .amux = LINE2,
3631                         .gpio = 0x0200000,
3632                 },{
3633                         .type = SAA7134_INPUT_SVIDEO,
3634                         .vmux = 8,
3635                         .amux = LINE2,
3636                         .gpio = 0x0200000,
3637                 }},
3638         },
3639         [SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA] = {
3640                 .name           = "ASUSTeK P7131 Hybrid",
3641                 .audio_clock    = 0x00187de7,
3642                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3643                 .radio_type     = UNSET,
3644                 .tuner_addr     = ADDR_UNSET,
3645                 .radio_addr     = ADDR_UNSET,
3646                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3647                 .gpiomask       = 1 << 21,
3648                 .mpeg           = SAA7134_MPEG_DVB,
3649                 .inputs         = {{
3650                         .type = SAA7134_INPUT_TV,
3651                         .vmux = 1,
3652                         .amux = TV,
3653                         .gpio = 0x0000000,
3654                 },{
3655                         .type = SAA7134_INPUT_COMPOSITE1,
3656                         .vmux = 3,
3657                         .amux = LINE2,
3658                         .gpio = 0x0200000,
3659                 },{
3660                         .type = SAA7134_INPUT_COMPOSITE2,
3661                         .vmux = 0,
3662                         .amux = LINE2,
3663                         .gpio = 0x0200000,
3664                 },{
3665                         .type = SAA7134_INPUT_SVIDEO,
3666                         .vmux = 8,
3667                         .amux = LINE2,
3668                         .gpio = 0x0200000,
3669                 }},
3670                 .radio = {
3671                         .type = SAA7134_INPUT_RADIO,
3672                         .amux = TV,
3673                         .gpio = 0x0200000,
3674                 },
3675         },
3676         [SAA7134_BOARD_ASUSTeK_P7131_ANALOG] = {
3677                .name           = "ASUSTeK P7131 Analog",
3678                .audio_clock    = 0x00187de7,
3679                .tuner_type     = TUNER_PHILIPS_TDA8290,
3680                .radio_type     = UNSET,
3681                .tuner_addr     = ADDR_UNSET,
3682                .radio_addr     = ADDR_UNSET,
3683                .gpiomask       = 1 << 21,
3684                .inputs         = {{
3685                        .type = SAA7134_INPUT_TV,
3686                        .vmux = 1,
3687                        .amux = TV,
3688                        .gpio = 0x0000000,
3689                }, {
3690                        .type = SAA7134_INPUT_COMPOSITE1,
3691                        .vmux = 3,
3692                        .amux = LINE2,
3693                }, {
3694                        .type = SAA7134_INPUT_COMPOSITE2,
3695                        .vmux = 0,
3696                        .amux = LINE2,
3697                }, {
3698                        .type = SAA7134_INPUT_SVIDEO,
3699                        .vmux = 8,
3700                        .amux = LINE2,
3701                } },
3702                .radio = {
3703                        .type = SAA7134_INPUT_RADIO,
3704                        .amux = TV,
3705                        .gpio = 0x0200000,
3706                },
3707         },
3708         [SAA7134_BOARD_SABRENT_TV_PCB05] = {
3709                 .name           = "Sabrent PCMCIA TV-PCB05",
3710                 .audio_clock    = 0x00187de7,
3711                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3712                 .radio_type     = UNSET,
3713                 .tuner_addr     = ADDR_UNSET,
3714                 .radio_addr     = ADDR_UNSET,
3715                 .inputs         = {{
3716                         .type = SAA7134_INPUT_TV,
3717                         .vmux = 1,
3718                         .amux = TV,
3719                 },{
3720                         .type = SAA7134_INPUT_COMPOSITE1,
3721                         .vmux = 3,
3722                         .amux = LINE1,
3723                 },{
3724                         .type = SAA7134_INPUT_COMPOSITE2,
3725                         .vmux = 0,
3726                         .amux = LINE1,
3727                 },{
3728                         .type = SAA7134_INPUT_SVIDEO,
3729                         .vmux = 8,
3730                         .amux = LINE1,
3731                 }},
3732                 .mute = {
3733                         .type = SAA7134_INPUT_MUTE,
3734                         .amux = TV,
3735                 },
3736         },
3737         [SAA7134_BOARD_10MOONSTVMASTER3] = {
3738                 /* Tony Wan <aloha_cn@hotmail.com> */
3739                 .name           = "10MOONS TM300 TV Card",
3740                 .audio_clock    = 0x00200000,
3741                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
3742                 .radio_type     = UNSET,
3743                 .tuner_addr     = ADDR_UNSET,
3744                 .radio_addr     = ADDR_UNSET,
3745                 .gpiomask       = 0x7000,
3746                 .inputs         = {{
3747                         .type = SAA7134_INPUT_TV,
3748                         .vmux = 1,
3749                         .amux = LINE2,
3750                         .gpio = 0x0000,
3751                 },{
3752                         .type = SAA7134_INPUT_COMPOSITE1,
3753                         .vmux = 3,
3754                         .amux = LINE1,
3755                         .gpio = 0x2000,
3756                 },{
3757                         .type = SAA7134_INPUT_SVIDEO,
3758                         .vmux = 8,
3759                         .amux = LINE1,
3760                         .gpio = 0x2000,
3761                 }},
3762                 .mute = {
3763                         .type = SAA7134_INPUT_MUTE,
3764                         .amux = LINE2,
3765                         .gpio = 0x3000,
3766                 },
3767         },
3768         [SAA7134_BOARD_AVERMEDIA_SUPER_007] = {
3769                 .name           = "Avermedia Super 007",
3770                 .audio_clock    = 0x00187de7,
3771                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3772                 .radio_type     = UNSET,
3773                 .tuner_addr     = ADDR_UNSET,
3774                 .radio_addr     = ADDR_UNSET,
3775                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3776                 .mpeg           = SAA7134_MPEG_DVB,
3777                 .inputs = {{
3778                         .type = SAA7134_INPUT_TV, /* FIXME: analog tv untested */
3779                         .vmux   = 1,
3780                         .amux   = TV,
3781                 }},
3782         },
3783         [SAA7134_BOARD_AVERMEDIA_M135A] = {
3784                 .name           = "Avermedia PCI pure analog (M135A)",
3785                 .audio_clock    = 0x00187de7,
3786                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3787                 .radio_type     = UNSET,
3788                 .tuner_addr     = ADDR_UNSET,
3789                 .radio_addr     = ADDR_UNSET,
3790                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
3791                 .gpiomask       = 0x020200000,
3792                 .inputs         = {{
3793                         .type = SAA7134_INPUT_TV,
3794                         .vmux = 1,
3795                         .amux = TV,
3796                 }, {
3797                         .type = SAA7134_INPUT_COMPOSITE1,
3798                         .vmux = 3,
3799                         .amux = LINE1,
3800                 }, {
3801                         .type = SAA7134_INPUT_SVIDEO,
3802                         .vmux = 8,
3803                         .amux = LINE1,
3804                 } },
3805                 .radio = {
3806                         .type = SAA7134_INPUT_RADIO,
3807                         .amux = TV,
3808                         .gpio = 0x00200000,
3809                 },
3810                 .mute = {
3811                         .type = SAA7134_INPUT_MUTE,
3812                         .amux = TV,
3813                         .gpio = 0x01,
3814                 },
3815         },
3816         [SAA7134_BOARD_AVERMEDIA_M733A] = {
3817                 .name           = "Avermedia PCI M733A",
3818                 .audio_clock    = 0x00187de7,
3819                 .tuner_type     = TUNER_PHILIPS_TDA8290,
3820                 .radio_type     = UNSET,
3821                 .tuner_addr     = ADDR_UNSET,
3822                 .radio_addr     = ADDR_UNSET,
3823                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
3824                 .gpiomask       = 0x020200000,
3825                 .inputs         = {{
3826                         .type = SAA7134_INPUT_TV,
3827                         .vmux = 1,
3828                         .amux = TV,
3829                 }, {
3830                         .type = SAA7134_INPUT_COMPOSITE1,
3831                         .vmux = 3,
3832                         .amux = LINE1,
3833                 }, {
3834                         .type = SAA7134_INPUT_SVIDEO,
3835                         .vmux = 8,
3836                         .amux = LINE1,
3837                 } },
3838                 .radio = {
3839                         .type = SAA7134_INPUT_RADIO,
3840                         .amux = TV,
3841                         .gpio = 0x00200000,
3842                 },
3843                 .mute = {
3844                         .type = SAA7134_INPUT_MUTE,
3845                         .amux = TV,
3846                         .gpio = 0x01,
3847                 },
3848         },
3849         [SAA7134_BOARD_BEHOLD_401] = {
3850                 /*       Beholder Intl. Ltd. 2008      */
3851                 /*Dmitry Belimov <d.belimov@gmail.com> */
3852                 .name           = "Beholder BeholdTV 401",
3853                 .audio_clock    = 0x00187de7,
3854                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3855                 .radio_type     = UNSET,
3856                 .tuner_addr     = ADDR_UNSET,
3857                 .radio_addr     = ADDR_UNSET,
3858                 .gpiomask       = 0x00008000,
3859                 .inputs         = {{
3860                         .type = SAA7134_INPUT_SVIDEO,
3861                         .vmux = 8,
3862                         .amux = LINE1,
3863                 },{
3864                         .type = SAA7134_INPUT_COMPOSITE1,
3865                         .vmux = 1,
3866                         .amux = LINE1,
3867                 },{
3868                         .type = SAA7134_INPUT_TV,
3869                         .vmux = 3,
3870                         .amux = LINE2,
3871                 }},
3872                 .mute = {
3873                         .type = SAA7134_INPUT_MUTE,
3874                         .amux = LINE1,
3875                 },
3876         },
3877         [SAA7134_BOARD_BEHOLD_403] = {
3878                 /*       Beholder Intl. Ltd. 2008      */
3879                 /*Dmitry Belimov <d.belimov@gmail.com> */
3880                 .name           = "Beholder BeholdTV 403",
3881                 .audio_clock    = 0x00187de7,
3882                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3883                 .radio_type     = UNSET,
3884                 .tuner_addr     = ADDR_UNSET,
3885                 .radio_addr     = ADDR_UNSET,
3886                 .gpiomask       = 0x00008000,
3887                 .inputs         = {{
3888                         .type = SAA7134_INPUT_SVIDEO,
3889                         .vmux = 8,
3890                         .amux = LINE1,
3891                 },{
3892                         .type = SAA7134_INPUT_COMPOSITE1,
3893                         .vmux   = 1,
3894                         .amux   = LINE1,
3895                 },{
3896                         .type = SAA7134_INPUT_TV,
3897                         .vmux = 3,
3898                         .amux = LINE2,
3899                 }},
3900         },
3901         [SAA7134_BOARD_BEHOLD_403FM] = {
3902                 /*       Beholder Intl. Ltd. 2008      */
3903                 /*Dmitry Belimov <d.belimov@gmail.com> */
3904                 .name           = "Beholder BeholdTV 403 FM",
3905                 .audio_clock    = 0x00187de7,
3906                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
3907                 .radio_type     = UNSET,
3908                 .tuner_addr     = ADDR_UNSET,
3909                 .radio_addr     = ADDR_UNSET,
3910                 .gpiomask       = 0x00008000,
3911                 .inputs         = {{
3912                         .type = SAA7134_INPUT_SVIDEO,
3913                         .vmux = 8,
3914                         .amux = LINE1,
3915                 },{
3916                         .type = SAA7134_INPUT_COMPOSITE1,
3917                         .vmux   = 1,
3918                         .amux   = LINE1,
3919                 },{
3920                         .type = SAA7134_INPUT_TV,
3921                         .vmux = 3,
3922                         .amux = LINE2,
3923                 }},
3924                 .radio = {
3925                         .type = SAA7134_INPUT_RADIO,
3926                         .amux = LINE2,
3927                 },
3928         },
3929         [SAA7134_BOARD_BEHOLD_405] = {
3930                 /*       Beholder Intl. Ltd. 2008      */
3931                 /*Dmitry Belimov <d.belimov@gmail.com> */
3932                 .name           = "Beholder BeholdTV 405",
3933                 .audio_clock    = 0x00187de7,
3934                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3935                 .radio_type     = UNSET,
3936                 .tuner_addr     = ADDR_UNSET,
3937                 .radio_addr     = ADDR_UNSET,
3938                 .tda9887_conf   = TDA9887_PRESENT,
3939                 .gpiomask       = 0x00008000,
3940                 .inputs         = {{
3941                         .type = SAA7134_INPUT_SVIDEO,
3942                         .vmux = 8,
3943                         .amux = LINE1,
3944                 },{
3945                         .type = SAA7134_INPUT_COMPOSITE1,
3946                         .vmux = 3,
3947                         .amux = LINE1,
3948                 },{
3949                         .type = SAA7134_INPUT_TV,
3950                         .vmux = 3,
3951                         .amux = LINE2,
3952                 }},
3953         },
3954         [SAA7134_BOARD_BEHOLD_405FM] = {
3955                 /* Sergey <skiv@orel.ru> */
3956                 /*       Beholder Intl. Ltd. 2008      */
3957                 /*Dmitry Belimov <d.belimov@gmail.com> */
3958                 .name           = "Beholder BeholdTV 405 FM",
3959                 .audio_clock    = 0x00187de7,
3960                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3961                 .radio_type     = UNSET,
3962                 .tuner_addr     = ADDR_UNSET,
3963                 .radio_addr     = ADDR_UNSET,
3964                 .tda9887_conf   = TDA9887_PRESENT,
3965                 .gpiomask       = 0x00008000,
3966                 .inputs         = {{
3967                         .type = SAA7134_INPUT_SVIDEO,
3968                         .vmux = 8,
3969                         .amux = LINE1,
3970                 },{
3971                         .type = SAA7134_INPUT_COMPOSITE1,
3972                         .vmux = 3,
3973                         .amux = LINE1,
3974                 },{
3975                         .type = SAA7134_INPUT_TV,
3976                         .vmux = 3,
3977                         .amux = LINE2,
3978                 }},
3979                 .radio = {
3980                         .type = SAA7134_INPUT_RADIO,
3981                         .amux = LINE2,
3982                 },
3983         },
3984         [SAA7134_BOARD_BEHOLD_407] = {
3985                 /*       Beholder Intl. Ltd. 2008      */
3986                 /*Dmitry Belimov <d.belimov@gmail.com> */
3987                 .name           = "Beholder BeholdTV 407",
3988                 .audio_clock    = 0x00187de7,
3989                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
3990                 .radio_type     = UNSET,
3991                 .tuner_addr     = ADDR_UNSET,
3992                 .radio_addr     = ADDR_UNSET,
3993                 .tda9887_conf   = TDA9887_PRESENT,
3994                 .gpiomask       = 0x00008000,
3995                 .inputs = {{
3996                         .type = SAA7134_INPUT_SVIDEO,
3997                         .vmux = 8,
3998                         .amux = LINE1,
3999                         .gpio = 0xc0c000,
4000                 },{
4001                         .type = SAA7134_INPUT_COMPOSITE1,
4002                         .vmux = 1,
4003                         .amux = LINE1,
4004                         .gpio = 0xc0c000,
4005                 },{
4006                         .type = SAA7134_INPUT_TV,
4007                         .vmux = 3,
4008                         .amux = TV,
4009                         .gpio = 0xc0c000,
4010                 }},
4011         },
4012         [SAA7134_BOARD_BEHOLD_407FM] = {
4013                 /*       Beholder Intl. Ltd. 2008      */
4014                 /*Dmitry Belimov <d.belimov@gmail.com> */
4015                 .name           = "Beholder BeholdTV 407 FM",
4016                 .audio_clock    = 0x00187de7,
4017                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4018                 .radio_type     = UNSET,
4019                 .tuner_addr     = ADDR_UNSET,
4020                 .radio_addr     = ADDR_UNSET,
4021                 .tda9887_conf   = TDA9887_PRESENT,
4022                 .gpiomask       = 0x00008000,
4023                 .inputs = {{
4024                         .type = SAA7134_INPUT_SVIDEO,
4025                         .vmux = 8,
4026                         .amux = LINE1,
4027                         .gpio = 0xc0c000,
4028                 },{
4029                         .type = SAA7134_INPUT_COMPOSITE1,
4030                         .vmux = 1,
4031                         .amux = LINE1,
4032                         .gpio = 0xc0c000,
4033                 },{
4034                         .type = SAA7134_INPUT_TV,
4035                         .vmux = 3,
4036                         .amux = TV,
4037                         .gpio = 0xc0c000,
4038                 }},
4039                 .radio = {
4040                         .type = SAA7134_INPUT_RADIO,
4041                         .amux = LINE2,
4042                         .gpio = 0xc0c000,
4043                 },
4044         },
4045         [SAA7134_BOARD_BEHOLD_409] = {
4046                 /*       Beholder Intl. Ltd. 2008      */
4047                 /*Dmitry Belimov <d.belimov@gmail.com> */
4048                 .name           = "Beholder BeholdTV 409",
4049                 .audio_clock    = 0x00187de7,
4050                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4051                 .radio_type     = UNSET,
4052                 .tuner_addr     = ADDR_UNSET,
4053                 .radio_addr     = ADDR_UNSET,
4054                 .tda9887_conf   = TDA9887_PRESENT,
4055                 .gpiomask       = 0x00008000,
4056                 .inputs         = {{
4057                         .type = SAA7134_INPUT_TV,
4058                         .vmux = 3,
4059                         .amux = TV,
4060                 },{
4061                         .type = SAA7134_INPUT_COMPOSITE1,
4062                         .vmux = 1,
4063                         .amux = LINE1,
4064                 },{
4065                         .type = SAA7134_INPUT_SVIDEO,
4066                         .vmux = 8,
4067                         .amux = LINE1,
4068                 }},
4069         },
4070         [SAA7134_BOARD_BEHOLD_505FM] = {
4071                 /*       Beholder Intl. Ltd. 2008      */
4072                 /*Dmitry Belimov <d.belimov@gmail.com> */
4073                 .name           = "Beholder BeholdTV 505 FM",
4074                 .audio_clock    = 0x00200000,
4075                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4076                 .radio_type     = UNSET,
4077                 .tuner_addr     = ADDR_UNSET,
4078                 .radio_addr     = ADDR_UNSET,
4079                 .tda9887_conf   = TDA9887_PRESENT,
4080                 .gpiomask       = 0x00008000,
4081                 .inputs         = {{
4082                         .type = SAA7134_INPUT_TV,
4083                         .vmux = 3,
4084                         .amux = LINE2,
4085                 }, {
4086                         .type = SAA7134_INPUT_COMPOSITE1,
4087                         .vmux = 1,
4088                         .amux = LINE1,
4089                 }, {
4090                         .type = SAA7134_INPUT_SVIDEO,
4091                         .vmux = 8,
4092                         .amux = LINE1,
4093                 } },
4094                 .mute = {
4095                         .type = SAA7134_INPUT_MUTE,
4096                         .amux = LINE1,
4097                 },
4098                 .radio = {
4099                         .type = SAA7134_INPUT_RADIO,
4100                         .amux = LINE2,
4101                 },
4102         },
4103         [SAA7134_BOARD_BEHOLD_505RDS_MK5] = {
4104                 /*       Beholder Intl. Ltd. 2008      */
4105                 /*Dmitry Belimov <d.belimov@gmail.com> */
4106                 .name           = "Beholder BeholdTV 505 RDS",
4107                 .audio_clock    = 0x00200000,
4108                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4109                 .radio_type     = UNSET,
4110                 .tuner_addr     = ADDR_UNSET,
4111                 .radio_addr     = ADDR_UNSET,
4112                 .rds_addr       = 0x10,
4113                 .tda9887_conf   = TDA9887_PRESENT,
4114                 .gpiomask       = 0x00008000,
4115                 .inputs         = {{
4116                         .type = SAA7134_INPUT_TV,
4117                         .vmux = 3,
4118                         .amux = LINE2,
4119                 },{
4120                         .type = SAA7134_INPUT_COMPOSITE1,
4121                         .vmux = 1,
4122                         .amux = LINE1,
4123                 },{
4124                         .type = SAA7134_INPUT_SVIDEO,
4125                         .vmux = 8,
4126                         .amux = LINE1,
4127                 }},
4128                 .mute = {
4129                         .type = SAA7134_INPUT_MUTE,
4130                         .amux = LINE1,
4131                 },
4132                 .radio = {
4133                         .type = SAA7134_INPUT_RADIO,
4134                         .amux = LINE2,
4135                 },
4136         },
4137         [SAA7134_BOARD_BEHOLD_507_9FM] = {
4138                 /*       Beholder Intl. Ltd. 2008      */
4139                 /*Dmitry Belimov <d.belimov@gmail.com> */
4140                 .name           = "Beholder BeholdTV 507 FM / BeholdTV 509 FM",
4141                 .audio_clock    = 0x00187de7,
4142                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4143                 .radio_type     = UNSET,
4144                 .tuner_addr     = ADDR_UNSET,
4145                 .radio_addr     = ADDR_UNSET,
4146                 .tda9887_conf   = TDA9887_PRESENT,
4147                 .gpiomask       = 0x00008000,
4148                 .inputs         = {{
4149                         .type = SAA7134_INPUT_TV,
4150                         .vmux = 3,
4151                         .amux = TV,
4152                 },{
4153                         .type = SAA7134_INPUT_COMPOSITE1,
4154                         .vmux = 1,
4155                         .amux = LINE1,
4156                 },{
4157                         .type = SAA7134_INPUT_SVIDEO,
4158                         .vmux = 8,
4159                         .amux = LINE1,
4160                 }},
4161                         .radio = {
4162                         .type = SAA7134_INPUT_RADIO,
4163                         .amux = LINE2,
4164                 },
4165         },
4166         [SAA7134_BOARD_BEHOLD_507RDS_MK5] = {
4167                 /*       Beholder Intl. Ltd. 2008      */
4168                 /*Dmitry Belimov <d.belimov@gmail.com> */
4169                 .name           = "Beholder BeholdTV 507 RDS",
4170                 .audio_clock    = 0x00187de7,
4171                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4172                 .radio_type     = UNSET,
4173                 .tuner_addr     = ADDR_UNSET,
4174                 .radio_addr     = ADDR_UNSET,
4175                 .rds_addr       = 0x10,
4176                 .tda9887_conf   = TDA9887_PRESENT,
4177                 .gpiomask       = 0x00008000,
4178                 .inputs         = {{
4179                         .type = SAA7134_INPUT_TV,
4180                         .vmux = 3,
4181                         .amux = TV,
4182                 }, {
4183                         .type = SAA7134_INPUT_COMPOSITE1,
4184                         .vmux = 1,
4185                         .amux = LINE1,
4186                 }, {
4187                         .type = SAA7134_INPUT_SVIDEO,
4188                         .vmux = 8,
4189                         .amux = LINE1,
4190                 } },
4191                         .radio = {
4192                         .type = SAA7134_INPUT_RADIO,
4193                         .amux = LINE2,
4194                 },
4195         },
4196         [SAA7134_BOARD_BEHOLD_507RDS_MK3] = {
4197                 /*       Beholder Intl. Ltd. 2008      */
4198                 /*Dmitry Belimov <d.belimov@gmail.com> */
4199                 .name           = "Beholder BeholdTV 507 RDS",
4200                 .audio_clock    = 0x00187de7,
4201                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4202                 .radio_type     = UNSET,
4203                 .tuner_addr     = ADDR_UNSET,
4204                 .radio_addr     = ADDR_UNSET,
4205                 .rds_addr       = 0x10,
4206                 .tda9887_conf   = TDA9887_PRESENT,
4207                 .gpiomask       = 0x00008000,
4208                 .inputs         = {{
4209                         .type = SAA7134_INPUT_TV,
4210                         .vmux = 3,
4211                         .amux = TV,
4212                 }, {
4213                         .type = SAA7134_INPUT_COMPOSITE1,
4214                         .vmux = 1,
4215                         .amux = LINE1,
4216                 }, {
4217                         .type = SAA7134_INPUT_SVIDEO,
4218                         .vmux = 8,
4219                         .amux = LINE1,
4220                 } },
4221                         .radio = {
4222                         .type = SAA7134_INPUT_RADIO,
4223                         .amux = LINE2,
4224                 },
4225         },
4226         [SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM] = {
4227                 /*       Beholder Intl. Ltd. 2008      */
4228                 /* Dmitry Belimov <d.belimov@gmail.com> */
4229                 .name           = "Beholder BeholdTV Columbus TV/FM",
4230                 .audio_clock    = 0x00187de7,
4231                 .tuner_type     = TUNER_ALPS_TSBE5_PAL,
4232                 .radio_type     = TUNER_TEA5767,
4233                 .tuner_addr     = 0xc2 >> 1,
4234                 .radio_addr     = 0xc0 >> 1,
4235                 .tda9887_conf   = TDA9887_PRESENT,
4236                 .gpiomask       = 0x000A8004,
4237                 .inputs         = {{
4238                         .type = SAA7134_INPUT_TV,
4239                         .vmux = 3,
4240                         .amux = TV,
4241                         .gpio = 0x000A8004,
4242                 }, {
4243                         .type = SAA7134_INPUT_COMPOSITE1,
4244                         .vmux = 1,
4245                         .amux = LINE1,
4246                         .gpio = 0x000A8000,
4247                 }, {
4248                         .type = SAA7134_INPUT_SVIDEO,
4249                         .vmux = 8,
4250                         .amux = LINE1,
4251                         .gpio = 0x000A8000,
4252                 } },
4253                 .radio = {
4254                         .type = SAA7134_INPUT_RADIO,
4255                         .amux = LINE2,
4256                         .gpio = 0x000A8000,
4257                 },
4258         },
4259         [SAA7134_BOARD_BEHOLD_607FM_MK3] = {
4260                 /* Andrey Melnikoff <temnota@kmv.ru> */
4261                 .name           = "Beholder BeholdTV 607 FM",
4262                 .audio_clock    = 0x00187de7,
4263                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4264                 .radio_type     = UNSET,
4265                 .tuner_addr     = ADDR_UNSET,
4266                 .radio_addr     = ADDR_UNSET,
4267                 .tda9887_conf   = TDA9887_PRESENT,
4268                 .inputs         = {{
4269                         .type = SAA7134_INPUT_TV,
4270                         .vmux = 3,
4271                         .amux = TV,
4272                 }, {
4273                         .type = SAA7134_INPUT_COMPOSITE1,
4274                         .vmux = 1,
4275                         .amux = LINE1,
4276                 }, {
4277                         .type = SAA7134_INPUT_SVIDEO,
4278                         .vmux = 8,
4279                         .amux = LINE1,
4280                 } },
4281                 .radio = {
4282                         .type = SAA7134_INPUT_RADIO,
4283                         .amux = LINE2,
4284                 },
4285         },
4286         [SAA7134_BOARD_BEHOLD_609FM_MK3] = {
4287                 /* Andrey Melnikoff <temnota@kmv.ru> */
4288                 .name           = "Beholder BeholdTV 609 FM",
4289                 .audio_clock    = 0x00187de7,
4290                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4291                 .radio_type     = UNSET,
4292                 .tuner_addr     = ADDR_UNSET,
4293                 .radio_addr     = ADDR_UNSET,
4294                 .tda9887_conf   = TDA9887_PRESENT,
4295                 .inputs         = {{
4296                         .type = SAA7134_INPUT_TV,
4297                         .vmux = 3,
4298                         .amux = TV,
4299                 }, {
4300                         .type = SAA7134_INPUT_COMPOSITE1,
4301                         .vmux = 1,
4302                         .amux = LINE1,
4303                 }, {
4304                         .type = SAA7134_INPUT_SVIDEO,
4305                         .vmux = 8,
4306                         .amux = LINE1,
4307                 } },
4308                 .radio = {
4309                         .type = SAA7134_INPUT_RADIO,
4310                         .amux = LINE2,
4311                 },
4312         },
4313         [SAA7134_BOARD_BEHOLD_607FM_MK5] = {
4314                 /* Andrey Melnikoff <temnota@kmv.ru> */
4315                 .name           = "Beholder BeholdTV 607 FM",
4316                 .audio_clock    = 0x00187de7,
4317                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4318                 .radio_type     = UNSET,
4319                 .tuner_addr     = ADDR_UNSET,
4320                 .radio_addr     = ADDR_UNSET,
4321                 .tda9887_conf   = TDA9887_PRESENT,
4322                 .inputs         = {{
4323                         .type = SAA7134_INPUT_TV,
4324                         .vmux = 3,
4325                         .amux = TV,
4326                 }, {
4327                         .type = SAA7134_INPUT_COMPOSITE1,
4328                         .vmux = 1,
4329                         .amux = LINE1,
4330                 }, {
4331                         .type = SAA7134_INPUT_SVIDEO,
4332                         .vmux = 8,
4333                         .amux = LINE1,
4334                 } },
4335                 .radio = {
4336                         .type = SAA7134_INPUT_RADIO,
4337                         .amux = LINE2,
4338                 },
4339         },
4340         [SAA7134_BOARD_BEHOLD_609FM_MK5] = {
4341                 /* Andrey Melnikoff <temnota@kmv.ru> */
4342                 .name           = "Beholder BeholdTV 609 FM",
4343                 .audio_clock    = 0x00187de7,
4344                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4345                 .radio_type     = UNSET,
4346                 .tuner_addr     = ADDR_UNSET,
4347                 .radio_addr     = ADDR_UNSET,
4348                 .tda9887_conf   = TDA9887_PRESENT,
4349                 .inputs         = {{
4350                         .type = SAA7134_INPUT_TV,
4351                         .vmux = 3,
4352                         .amux = TV,
4353                 }, {
4354                         .type = SAA7134_INPUT_COMPOSITE1,
4355                         .vmux = 1,
4356                         .amux = LINE1,
4357                 }, {
4358                         .type = SAA7134_INPUT_SVIDEO,
4359                         .vmux = 8,
4360                         .amux = LINE1,
4361                 } },
4362                 .radio = {
4363                         .type = SAA7134_INPUT_RADIO,
4364                         .amux = LINE2,
4365                 },
4366         },
4367         [SAA7134_BOARD_BEHOLD_607RDS_MK3] = {
4368                 /* Andrey Melnikoff <temnota@kmv.ru> */
4369                 .name           = "Beholder BeholdTV 607 RDS",
4370                 .audio_clock    = 0x00187de7,
4371                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4372                 .radio_type     = UNSET,
4373                 .tuner_addr     = ADDR_UNSET,
4374                 .radio_addr     = ADDR_UNSET,
4375                 .rds_addr       = 0x10,
4376                 .tda9887_conf   = TDA9887_PRESENT,
4377                 .inputs         = {{
4378                         .type = SAA7134_INPUT_TV,
4379                         .vmux = 3,
4380                         .amux = TV,
4381                 }, {
4382                         .type = SAA7134_INPUT_COMPOSITE1,
4383                         .vmux = 1,
4384                         .amux = LINE1,
4385                 }, {
4386                         .type = SAA7134_INPUT_SVIDEO,
4387                         .vmux = 8,
4388                         .amux = LINE1,
4389                 } },
4390                 .radio = {
4391                         .type = SAA7134_INPUT_RADIO,
4392                         .amux = LINE2,
4393                 },
4394         },
4395         [SAA7134_BOARD_BEHOLD_609RDS_MK3] = {
4396                 /* Andrey Melnikoff <temnota@kmv.ru> */
4397                 .name           = "Beholder BeholdTV 609 RDS",
4398                 .audio_clock    = 0x00187de7,
4399                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4400                 .radio_type     = UNSET,
4401                 .tuner_addr     = ADDR_UNSET,
4402                 .radio_addr     = ADDR_UNSET,
4403                 .rds_addr       = 0x10,
4404                 .tda9887_conf   = TDA9887_PRESENT,
4405                 .inputs         = {{
4406                         .type = SAA7134_INPUT_TV,
4407                         .vmux = 3,
4408                         .amux = TV,
4409                 }, {
4410                         .type = SAA7134_INPUT_COMPOSITE1,
4411                         .vmux = 1,
4412                         .amux = LINE1,
4413                 }, {
4414                         .type = SAA7134_INPUT_SVIDEO,
4415                         .vmux = 8,
4416                         .amux = LINE1,
4417                 } },
4418                 .radio = {
4419                         .type = SAA7134_INPUT_RADIO,
4420                         .amux = LINE2,
4421                 },
4422         },
4423         [SAA7134_BOARD_BEHOLD_607RDS_MK5] = {
4424                 /* Andrey Melnikoff <temnota@kmv.ru> */
4425                 .name           = "Beholder BeholdTV 607 RDS",
4426                 .audio_clock    = 0x00187de7,
4427                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4428                 .radio_type     = UNSET,
4429                 .tuner_addr     = ADDR_UNSET,
4430                 .radio_addr     = ADDR_UNSET,
4431                 .rds_addr       = 0x10,
4432                 .tda9887_conf   = TDA9887_PRESENT,
4433                 .inputs         = {{
4434                         .type = SAA7134_INPUT_TV,
4435                         .vmux = 3,
4436                         .amux = TV,
4437                 }, {
4438                         .type = SAA7134_INPUT_COMPOSITE1,
4439                         .vmux = 1,
4440                         .amux = LINE1,
4441                 }, {
4442                         .type = SAA7134_INPUT_SVIDEO,
4443                         .vmux = 8,
4444                         .amux = LINE1,
4445                 } },
4446                 .radio = {
4447                         .type = SAA7134_INPUT_RADIO,
4448                         .amux = LINE2,
4449                 },
4450         },
4451         [SAA7134_BOARD_BEHOLD_609RDS_MK5] = {
4452                 /* Andrey Melnikoff <temnota@kmv.ru> */
4453                 .name           = "Beholder BeholdTV 609 RDS",
4454                 .audio_clock    = 0x00187de7,
4455                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4456                 .radio_type     = UNSET,
4457                 .tuner_addr     = ADDR_UNSET,
4458                 .radio_addr     = ADDR_UNSET,
4459                 .rds_addr       = 0x10,
4460                 .tda9887_conf   = TDA9887_PRESENT,
4461                 .inputs         = {{
4462                         .type = SAA7134_INPUT_TV,
4463                         .vmux = 3,
4464                         .amux = TV,
4465                 },{
4466                         .type = SAA7134_INPUT_COMPOSITE1,
4467                         .vmux = 1,
4468                         .amux = LINE1,
4469                 },{
4470                         .type = SAA7134_INPUT_SVIDEO,
4471                         .vmux = 8,
4472                         .amux = LINE1,
4473                 }},
4474                 .radio = {
4475                         .type = SAA7134_INPUT_RADIO,
4476                         .amux = LINE2,
4477                 },
4478         },
4479         [SAA7134_BOARD_BEHOLD_M6] = {
4480                 /* Igor Kuznetsov <igk@igk.ru> */
4481                 /* Andrey Melnikoff <temnota@kmv.ru> */
4482                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4483                 /* Alexey Osipov <lion-simba@pridelands.ru> */
4484                 .name           = "Beholder BeholdTV M6",
4485                 .audio_clock    = 0x00187de7,
4486                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4487                 .radio_type     = UNSET,
4488                 .tuner_addr     = ADDR_UNSET,
4489                 .radio_addr     = ADDR_UNSET,
4490                 .empress_addr   = 0x20,
4491                 .tda9887_conf   = TDA9887_PRESENT,
4492                 .inputs         = { {
4493                         .type = SAA7134_INPUT_TV,
4494                         .vmux = 3,
4495                         .amux = TV,
4496                 }, {
4497                         .type = SAA7134_INPUT_COMPOSITE1,
4498                         .vmux = 1,
4499                         .amux = LINE1,
4500                 }, {
4501                         .type = SAA7134_INPUT_SVIDEO,
4502                         .vmux = 8,
4503                         .amux = LINE1,
4504                 } },
4505                 .radio = {
4506                         .type = SAA7134_INPUT_RADIO,
4507                         .amux = LINE2,
4508                 },
4509                 .mpeg  = SAA7134_MPEG_EMPRESS,
4510                 .video_out = CCIR656,
4511                 .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4512                                         SET_CLOCK_NOT_DELAYED |
4513                                         SET_CLOCK_INVERTED |
4514                                         SET_VSYNC_OFF),
4515         },
4516         [SAA7134_BOARD_BEHOLD_M63] = {
4517                 /* Igor Kuznetsov <igk@igk.ru> */
4518                 /* Andrey Melnikoff <temnota@kmv.ru> */
4519                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4520                 .name           = "Beholder BeholdTV M63",
4521                 .audio_clock    = 0x00187de7,
4522                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
4523                 .radio_type     = UNSET,
4524                 .tuner_addr     = ADDR_UNSET,
4525                 .radio_addr     = ADDR_UNSET,
4526                 .empress_addr   = 0x20,
4527                 .tda9887_conf   = TDA9887_PRESENT,
4528                 .inputs         = { {
4529                         .type = SAA7134_INPUT_TV,
4530                         .vmux = 3,
4531                         .amux = TV,
4532                 }, {
4533                         .type = SAA7134_INPUT_COMPOSITE1,
4534                         .vmux = 1,
4535                         .amux = LINE1,
4536                 }, {
4537                         .type = SAA7134_INPUT_SVIDEO,
4538                         .vmux = 8,
4539                         .amux = LINE1,
4540                 } },
4541                 .radio = {
4542                         .type = SAA7134_INPUT_RADIO,
4543                         .amux = LINE2,
4544                 },
4545                 .mpeg  = SAA7134_MPEG_EMPRESS,
4546                 .video_out = CCIR656,
4547                 .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4548                                         SET_CLOCK_NOT_DELAYED |
4549                                         SET_CLOCK_INVERTED |
4550                                         SET_VSYNC_OFF),
4551         },
4552         [SAA7134_BOARD_BEHOLD_M6_EXTRA] = {
4553                 /* Igor Kuznetsov <igk@igk.ru> */
4554                 /* Andrey Melnikoff <temnota@kmv.ru> */
4555                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
4556                 /* Alexey Osipov <lion-simba@pridelands.ru> */
4557                 .name           = "Beholder BeholdTV M6 Extra",
4558                 .audio_clock    = 0x00187de7,
4559                 .tuner_type     = TUNER_PHILIPS_FM1216MK5,
4560                 .radio_type     = UNSET,
4561                 .tuner_addr     = ADDR_UNSET,
4562                 .radio_addr     = ADDR_UNSET,
4563                 .rds_addr       = 0x10,
4564                 .empress_addr   = 0x20,
4565                 .tda9887_conf   = TDA9887_PRESENT,
4566                 .inputs         = { {
4567                         .type = SAA7134_INPUT_TV,
4568                         .vmux = 3,
4569                         .amux = TV,
4570                 }, {
4571                         .type = SAA7134_INPUT_COMPOSITE1,
4572                         .vmux = 1,
4573                         .amux = LINE1,
4574                 }, {
4575                         .type = SAA7134_INPUT_SVIDEO,
4576                         .vmux = 8,
4577                         .amux = LINE1,
4578                 } },
4579                 .radio = {
4580                         .type = SAA7134_INPUT_RADIO,
4581                         .amux = LINE2,
4582                 },
4583                 .mpeg  = SAA7134_MPEG_EMPRESS,
4584                 .video_out = CCIR656,
4585                 .vid_port_opts  = (SET_T_CODE_POLARITY_NON_INVERTED |
4586                                         SET_CLOCK_NOT_DELAYED |
4587                                         SET_CLOCK_INVERTED |
4588                                         SET_VSYNC_OFF),
4589         },
4590         [SAA7134_BOARD_TWINHAN_DTV_DVB_3056] = {
4591                 .name           = "Twinhan Hybrid DTV-DVB 3056 PCI",
4592                 .audio_clock    = 0x00187de7,
4593                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4594                 .radio_type     = UNSET,
4595                 .tuner_addr     = ADDR_UNSET,
4596                 .radio_addr     = ADDR_UNSET,
4597                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4598                 .mpeg           = SAA7134_MPEG_DVB,
4599                 .gpiomask       = 0x0200000,
4600                 .inputs = {{
4601                         .type = SAA7134_INPUT_TV,
4602                         .vmux   = 1,
4603                         .amux   = TV,
4604                 }, {
4605                         .type = SAA7134_INPUT_COMPOSITE1,
4606                         .vmux   = 3,
4607                         .amux   = LINE1,
4608                 }, {
4609                         .type = SAA7134_INPUT_SVIDEO,
4610                         .vmux   = 8,            /* untested */
4611                         .amux   = LINE1,
4612                 } },
4613                 .radio = {
4614                         .type = SAA7134_INPUT_RADIO,
4615                         .amux   = TV,
4616                         .gpio   = 0x0200000,
4617                 },
4618         },
4619         [SAA7134_BOARD_GENIUS_TVGO_A11MCE] = {
4620                 /* Adrian Pardini <pardo.bsso@gmail.com> */
4621                 .name           = "Genius TVGO AM11MCE",
4622                 .audio_clock    = 0x00200000,
4623                 .tuner_type     = TUNER_TNF_5335MF,
4624                 .radio_type     = UNSET,
4625                 .tuner_addr     = ADDR_UNSET,
4626                 .radio_addr     = ADDR_UNSET,
4627                 .gpiomask       = 0xf000,
4628                 .inputs         = {{
4629                         .type = SAA7134_INPUT_TV_MONO,
4630                         .vmux = 1,
4631                         .amux = LINE2,
4632                         .gpio = 0x0000,
4633                 }, {
4634                         .type = SAA7134_INPUT_COMPOSITE1,
4635                         .vmux = 3,
4636                         .amux = LINE1,
4637                         .gpio = 0x2000,
4638                 }, {
4639                         .type = SAA7134_INPUT_SVIDEO,
4640                         .vmux = 8,
4641                         .amux = LINE1,
4642                         .gpio = 0x2000,
4643         } },
4644                 .radio = {
4645                         .type = SAA7134_INPUT_RADIO,
4646                         .amux = LINE2,
4647                         .gpio = 0x1000,
4648                 },
4649                 .mute = {
4650                         .type = SAA7134_INPUT_MUTE,
4651                         .amux = LINE2,
4652                         .gpio = 0x6000,
4653                 },
4654         },
4655         [SAA7134_BOARD_PHILIPS_SNAKE] = {
4656                 .name           = "NXP Snake DVB-S reference design",
4657                 .audio_clock    = 0x00200000,
4658                 .tuner_type     = TUNER_ABSENT,
4659                 .radio_type     = UNSET,
4660                 .tuner_addr     = ADDR_UNSET,
4661                 .radio_addr     = ADDR_UNSET,
4662                 .mpeg           = SAA7134_MPEG_DVB,
4663                 .inputs = {{
4664                         .type = SAA7134_INPUT_COMPOSITE1,
4665                         .vmux   = 3,
4666                         .amux   = LINE1,
4667                 }, {
4668                         .type = SAA7134_INPUT_SVIDEO,
4669                         .vmux   = 8,
4670                         .amux   = LINE1,
4671                 } },
4672         },
4673         [SAA7134_BOARD_CREATIX_CTX953] = {
4674                 .name         = "Medion/Creatix CTX953 Hybrid",
4675                 .audio_clock  = 0x00187de7,
4676                 .tuner_type   = TUNER_PHILIPS_TDA8290,
4677                 .radio_type   = UNSET,
4678                 .tuner_addr   = ADDR_UNSET,
4679                 .radio_addr   = ADDR_UNSET,
4680                 .tda829x_conf = { .lna_cfg = TDA8290_LNA_OFF },
4681                 .mpeg         = SAA7134_MPEG_DVB,
4682                 .inputs       = {{
4683                         .type = SAA7134_INPUT_TV,
4684                         .vmux = 1,
4685                         .amux = TV,
4686                 }, {
4687                         .type = SAA7134_INPUT_COMPOSITE1,
4688                         .vmux = 0,
4689                         .amux = LINE1,
4690                 }, {
4691                         .type = SAA7134_INPUT_SVIDEO,
4692                         .vmux = 8,
4693                         .amux = LINE1,
4694                 } },
4695         },
4696         [SAA7134_BOARD_MSI_TVANYWHERE_AD11] = {
4697                 .name           = "MSI TV@nywhere A/D v1.1",
4698                 .audio_clock    = 0x00187de7,
4699                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4700                 .radio_type     = UNSET,
4701                 .tuner_addr     = ADDR_UNSET,
4702                 .radio_addr     = ADDR_UNSET,
4703                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4704                 .mpeg           = SAA7134_MPEG_DVB,
4705                 .gpiomask       = 0x0200000,
4706                 .inputs = { {
4707                         .type = SAA7134_INPUT_TV,
4708                         .vmux   = 1,
4709                         .amux   = TV,
4710                 }, {
4711                         .type = SAA7134_INPUT_COMPOSITE1,
4712                         .vmux   = 3,
4713                         .amux   = LINE1,
4714                 }, {
4715                         .type = SAA7134_INPUT_SVIDEO,
4716                         .vmux   = 8,
4717                         .amux   = LINE1,
4718                 } },
4719                 .radio = {
4720                         .type = SAA7134_INPUT_RADIO,
4721                         .amux   = TV,
4722                         .gpio   = 0x0200000,
4723                 },
4724         },
4725         [SAA7134_BOARD_AVERMEDIA_CARDBUS_506] = {
4726                 .name           = "AVerMedia Cardbus TV/Radio (E506R)",
4727                 .audio_clock    = 0x187de7,
4728                 .tuner_type     = TUNER_XC2028,
4729                 .radio_type     = UNSET,
4730                 .tuner_addr     = ADDR_UNSET,
4731                 .radio_addr     = ADDR_UNSET,
4732                  .mpeg           = SAA7134_MPEG_DVB,
4733                  .inputs         = {{
4734                          .type = SAA7134_INPUT_TV,
4735                          .vmux = 1,
4736                          .amux = TV,
4737                  }, {
4738                          .type = SAA7134_INPUT_COMPOSITE1,
4739                          .vmux = 3,
4740                          .amux = LINE1,
4741                  }, {
4742                          .type = SAA7134_INPUT_SVIDEO,
4743                          .vmux = 8,
4744                          .amux = LINE2,
4745                  } },
4746                  .radio = {
4747                          .type = SAA7134_INPUT_RADIO,
4748                          .amux = TV,
4749                  },
4750         },
4751         [SAA7134_BOARD_AVERMEDIA_A16D] = {
4752                 .name           = "AVerMedia Hybrid TV/Radio (A16D)",
4753                 .audio_clock    = 0x187de7,
4754                 .tuner_type     = TUNER_XC2028,
4755                 .radio_type     = UNSET,
4756                 .tuner_addr     = ADDR_UNSET,
4757                 .radio_addr     = ADDR_UNSET,
4758                 .mpeg           = SAA7134_MPEG_DVB,
4759                 .inputs         = {{
4760                         .type = SAA7134_INPUT_TV,
4761                         .vmux = 1,
4762                         .amux = TV,
4763                 }, {
4764                         .type = SAA7134_INPUT_SVIDEO,
4765                         .vmux = 8,
4766                         .amux = LINE1,
4767                 }, {
4768                         .type = SAA7134_INPUT_COMPOSITE,
4769                         .vmux = 0,
4770                         .amux = LINE1,
4771                 } },
4772                 .radio = {
4773                         .type = SAA7134_INPUT_RADIO,
4774                         .amux = TV,
4775                 },
4776         },
4777         [SAA7134_BOARD_AVERMEDIA_M115] = {
4778                 .name           = "Avermedia M115",
4779                 .audio_clock    = 0x187de7,
4780                 .tuner_type     = TUNER_XC2028,
4781                 .radio_type     = UNSET,
4782                 .tuner_addr     = ADDR_UNSET,
4783                 .radio_addr     = ADDR_UNSET,
4784                 .inputs         = {{
4785                         .type = SAA7134_INPUT_TV,
4786                         .vmux = 1,
4787                         .amux = TV,
4788                 }, {
4789                         .type = SAA7134_INPUT_COMPOSITE1,
4790                         .vmux = 3,
4791                         .amux = LINE1,
4792                 }, {
4793                         .type = SAA7134_INPUT_SVIDEO,
4794                         .vmux = 8,
4795                         .amux = LINE2,
4796                 } },
4797         },
4798         [SAA7134_BOARD_VIDEOMATE_T750] = {
4799                 /* John Newbigin <jn@it.swin.edu.au> */
4800                 .name           = "Compro VideoMate T750",
4801                 .audio_clock    = 0x00187de7,
4802                 .tuner_type     = TUNER_XC2028,
4803                 .radio_type     = UNSET,
4804                 .tuner_addr     = 0x61,
4805                 .radio_addr     = ADDR_UNSET,
4806                 .mpeg           = SAA7134_MPEG_DVB,
4807                 .inputs = {{
4808                         .type = SAA7134_INPUT_TV,
4809                         .vmux   = 3,
4810                         .amux   = TV,
4811                 }, {
4812                         .type = SAA7134_INPUT_COMPOSITE1,
4813                         .vmux   = 1,
4814                         .amux   = LINE2,
4815                 }, {
4816                         .type = SAA7134_INPUT_SVIDEO,
4817                         .vmux   = 8,
4818                         .amux   = LINE2,
4819                 } },
4820                 .radio = {
4821                         .type = SAA7134_INPUT_RADIO,
4822                         .amux = TV,
4823                 }
4824         },
4825         [SAA7134_BOARD_AVERMEDIA_A700_PRO] = {
4826                 /* Matthias Schwarzott <zzam@gentoo.org> */
4827                 .name           = "Avermedia DVB-S Pro A700",
4828                 .audio_clock    = 0x00187de7,
4829                 .tuner_type     = TUNER_ABSENT,
4830                 .radio_type     = UNSET,
4831                 .tuner_addr     = ADDR_UNSET,
4832                 .radio_addr     = ADDR_UNSET,
4833                 .mpeg           = SAA7134_MPEG_DVB,
4834                 .inputs         = { {
4835                         .type = SAA7134_INPUT_COMPOSITE,
4836                         .vmux = 1,
4837                         .amux = LINE1,
4838                 }, {
4839                         .type = SAA7134_INPUT_SVIDEO,
4840                         .vmux = 6,
4841                         .amux = LINE1,
4842                 } },
4843         },
4844         [SAA7134_BOARD_AVERMEDIA_A700_HYBRID] = {
4845                 /* Matthias Schwarzott <zzam@gentoo.org> */
4846                 .name           = "Avermedia DVB-S Hybrid+FM A700",
4847                 .audio_clock    = 0x00187de7,
4848                 .tuner_type     = TUNER_XC2028,
4849                 .radio_type     = UNSET,
4850                 .tuner_addr     = ADDR_UNSET,
4851                 .radio_addr     = ADDR_UNSET,
4852                 .mpeg           = SAA7134_MPEG_DVB,
4853                 .inputs         = { {
4854                         .type = SAA7134_INPUT_TV,
4855                         .vmux   = 4,
4856                         .amux   = TV,
4857                 }, {
4858                         .type = SAA7134_INPUT_COMPOSITE,
4859                         .vmux = 1,
4860                         .amux = LINE1,
4861                 }, {
4862                         .type = SAA7134_INPUT_SVIDEO,
4863                         .vmux = 6,
4864                         .amux = LINE1,
4865                 } },
4866                 .radio = {
4867                         .type = SAA7134_INPUT_RADIO,
4868                         .amux = TV,
4869                 },
4870         },
4871         [SAA7134_BOARD_BEHOLD_H6] = {
4872                 /* Igor Kuznetsov <igk@igk.ru> */
4873                 .name           = "Beholder BeholdTV H6",
4874                 .audio_clock    = 0x00187de7,
4875                 .tuner_type     = TUNER_PHILIPS_FMD1216MEX_MK3,
4876                 .radio_type     = UNSET,
4877                 .tuner_addr     = ADDR_UNSET,
4878                 .radio_addr     = ADDR_UNSET,
4879                 .tda9887_conf   = TDA9887_PRESENT,
4880                 .mpeg           = SAA7134_MPEG_DVB,
4881                 .inputs         = {{
4882                         .type = SAA7134_INPUT_TV,
4883                         .vmux = 3,
4884                         .amux = TV,
4885                 }, {
4886                         .type = SAA7134_INPUT_COMPOSITE1,
4887                         .vmux = 1,
4888                         .amux = LINE1,
4889                 }, {
4890                         .type = SAA7134_INPUT_SVIDEO,
4891                         .vmux = 8,
4892                         .amux = LINE1,
4893                 } },
4894                 .radio = {
4895                         .type = SAA7134_INPUT_RADIO,
4896                         .amux = LINE2,
4897                 },
4898         },
4899         [SAA7134_BOARD_ASUSTeK_TIGER_3IN1] = {
4900                 .name           = "Asus Tiger 3in1",
4901                 .audio_clock    = 0x00187de7,
4902                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4903                 .radio_type     = UNSET,
4904                 .tuner_addr     = ADDR_UNSET,
4905                 .radio_addr     = ADDR_UNSET,
4906                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4907                 .gpiomask       = 1 << 21,
4908                 .mpeg           = SAA7134_MPEG_DVB,
4909                 .inputs         = {{
4910                         .type = SAA7134_INPUT_TV,
4911                         .vmux = 1,
4912                         .amux = TV,
4913                 }, {
4914                         .type = SAA7134_INPUT_COMPOSITE,
4915                         .vmux = 0,
4916                         .amux = LINE2,
4917                 }, {
4918                         .type = SAA7134_INPUT_SVIDEO,
4919                         .vmux = 8,
4920                         .amux = LINE2,
4921                 } },
4922                 .radio = {
4923                         .type = SAA7134_INPUT_RADIO,
4924                         .amux = TV,
4925                         .gpio = 0x0200000,
4926                 },
4927         },
4928         [SAA7134_BOARD_ASUSTeK_PS3_100] = {
4929                 .name           = "Asus My Cinema PS3-100",
4930                 .audio_clock    = 0x00187de7,
4931                 .tuner_type     = TUNER_PHILIPS_TDA8290,
4932                 .radio_type     = UNSET,
4933                 .tuner_addr     = ADDR_UNSET,
4934                 .radio_addr     = ADDR_UNSET,
4935                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_GP0_HIGH_OFF },
4936                 .gpiomask       = 1 << 21,
4937                 .mpeg           = SAA7134_MPEG_DVB,
4938                 .inputs         = {{
4939                         .type = SAA7134_INPUT_TV,
4940                         .vmux = 1,
4941                         .amux = TV,
4942                 }, {
4943                         .type = SAA7134_INPUT_COMPOSITE,
4944                         .vmux = 0,
4945                         .amux = LINE2,
4946                 }, {
4947                         .type = SAA7134_INPUT_SVIDEO,
4948                         .vmux = 8,
4949                         .amux = LINE2,
4950                 } },
4951                 .radio = {
4952                         .type = SAA7134_INPUT_RADIO,
4953                         .amux = TV,
4954                         .gpio = 0x0200000,
4955                 },
4956         },
4957         [SAA7134_BOARD_REAL_ANGEL_220] = {
4958                 .name           = "Zogis Real Angel 220",
4959                 .audio_clock    = 0x00187de7,
4960                 .tuner_type     = TUNER_TNF_5335MF,
4961                 .radio_type     = UNSET,
4962                 .tuner_addr     = ADDR_UNSET,
4963                 .radio_addr     = ADDR_UNSET,
4964                 .gpiomask       = 0x801a8087,
4965                 .inputs = { {
4966                         .type = SAA7134_INPUT_TV,
4967                         .vmux   = 3,
4968                         .amux   = LINE2,
4969                         .gpio   = 0x624000,
4970                 }, {
4971                         .type = SAA7134_INPUT_COMPOSITE1,
4972                         .vmux   = 1,
4973                         .amux   = LINE1,
4974                         .gpio   = 0x624000,
4975                 }, {
4976                         .type = SAA7134_INPUT_SVIDEO,
4977                         .vmux   = 1,
4978                         .amux   = LINE1,
4979                         .gpio   = 0x624000,
4980                 } },
4981                 .radio = {
4982                         .type = SAA7134_INPUT_RADIO,
4983                         .amux   = LINE2,
4984                         .gpio   = 0x624001,
4985                 },
4986                 .mute = {
4987                         .type = SAA7134_INPUT_MUTE,
4988                         .amux = TV,
4989                 },
4990         },
4991         [SAA7134_BOARD_ADS_INSTANT_HDTV_PCI] = {
4992                 .name           = "ADS Tech Instant HDTV",
4993                 .audio_clock    = 0x00187de7,
4994                 .tuner_type     = TUNER_PHILIPS_TUV1236D,
4995                 .radio_type     = UNSET,
4996                 .tuner_addr     = ADDR_UNSET,
4997                 .radio_addr     = ADDR_UNSET,
4998                 .tda9887_conf   = TDA9887_PRESENT,
4999                 .mpeg           = SAA7134_MPEG_DVB,
5000                 .inputs         = { {
5001                         .type = SAA7134_INPUT_TV,
5002                         .vmux = 1,
5003                         .amux = TV,
5004                 }, {
5005                         .type = SAA7134_INPUT_COMPOSITE,
5006                         .vmux = 4,
5007                         .amux = LINE1,
5008                 }, {
5009                         .type = SAA7134_INPUT_SVIDEO,
5010                         .vmux = 8,
5011                         .amux = LINE1,
5012                 } },
5013         },
5014         [SAA7134_BOARD_ASUSTeK_TIGER] = {
5015                 .name           = "Asus Tiger Rev:1.00",
5016                 .audio_clock    = 0x00187de7,
5017                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5018                 .radio_type     = UNSET,
5019                 .tuner_addr     = ADDR_UNSET,
5020                 .radio_addr     = ADDR_UNSET,
5021                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5022                 .mpeg           = SAA7134_MPEG_DVB,
5023                 .gpiomask       = 0x0200000,
5024                 .inputs = { {
5025                         .type = SAA7134_INPUT_TV,
5026                         .vmux   = 1,
5027                         .amux   = TV,
5028                 }, {
5029                         .type = SAA7134_INPUT_COMPOSITE1,
5030                         .vmux   = 3,
5031                         .amux   = LINE2,
5032                 }, {
5033                         .type = SAA7134_INPUT_COMPOSITE2,
5034                         .vmux   = 0,
5035                         .amux   = LINE2,
5036                 }, {
5037                         .type = SAA7134_INPUT_SVIDEO,
5038                         .vmux   = 8,
5039                         .amux   = LINE2,
5040                 } },
5041                 .radio = {
5042                         .type = SAA7134_INPUT_RADIO,
5043                         .amux   = TV,
5044                         .gpio   = 0x0200000,
5045                 },
5046         },
5047         [SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG] = {
5048                 .name           = "Kworld Plus TV Analog Lite PCI",
5049                 .audio_clock    = 0x00187de7,
5050                 .tuner_type     = TUNER_YMEC_TVF_5533MF,
5051                 .radio_type     = TUNER_TEA5767,
5052                 .tuner_addr     = ADDR_UNSET,
5053                 .radio_addr     = 0x60,
5054                 .gpiomask       = 0x80000700,
5055                 .inputs = { {
5056                         .type = SAA7134_INPUT_TV,
5057                         .vmux   = 1,
5058                         .amux   = LINE2,
5059                         .gpio   = 0x100,
5060                 }, {
5061                         .type = SAA7134_INPUT_COMPOSITE1,
5062                         .vmux   = 3,
5063                         .amux   = LINE1,
5064                         .gpio   = 0x200,
5065                 }, {
5066                         .type = SAA7134_INPUT_SVIDEO,
5067                         .vmux   = 8,
5068                         .amux   = LINE1,
5069                         .gpio   = 0x200,
5070                 } },
5071                 .radio = {
5072                         .type = SAA7134_INPUT_RADIO,
5073                         .vmux   = 1,
5074                         .amux   = LINE1,
5075                         .gpio   = 0x100,
5076                 },
5077                 .mute = {
5078                         .type = SAA7134_INPUT_MUTE,
5079                         .vmux = 8,
5080                         .amux = 2,
5081                 },
5082         },
5083         [SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG] = {
5084                 .name           = "Kworld PCI SBTVD/ISDB-T Full-Seg Hybrid",
5085                 .audio_clock    = 0x00187de7,
5086                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5087                 .tuner_addr     = ADDR_UNSET,
5088                 .radio_type     = UNSET,
5089                 .radio_addr     = ADDR_UNSET,
5090                 .gpiomask       = 0x8e054000,
5091                 .mpeg           = SAA7134_MPEG_DVB,
5092                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5093                 .inputs = { {
5094                         .type = SAA7134_INPUT_TV,
5095                         .vmux   = 1,
5096                         .amux   = TV,
5097 #if 0   /* FIXME */
5098                 }, {
5099                         .type = SAA7134_INPUT_COMPOSITE1,
5100                         .vmux   = 3,
5101                         .amux   = LINE1,
5102                         .gpio   = 0x200,
5103                 }, {
5104                         .type = SAA7134_INPUT_SVIDEO,
5105                         .vmux   = 8,
5106                         .amux   = LINE1,
5107                         .gpio   = 0x200,
5108 #endif
5109                 } },
5110 #if 0
5111                 .radio = {
5112                         .type = SAA7134_INPUT_RADIO,
5113                         .vmux   = 1,
5114                         .amux   = LINE1,
5115                         .gpio   = 0x100,
5116                 },
5117 #endif
5118                 .mute = {
5119                         .type = SAA7134_INPUT_MUTE,
5120                         .vmux = 0,
5121                         .amux = TV,
5122                 },
5123         },
5124         [SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS] = {
5125                 .name           = "Avermedia AVerTV GO 007 FM Plus",
5126                 .audio_clock    = 0x00187de7,
5127                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5128                 .radio_type     = UNSET,
5129                 .tuner_addr     = ADDR_UNSET,
5130                 .radio_addr     = ADDR_UNSET,
5131                 .gpiomask       = 0x00300003,
5132                 /* .gpiomask       = 0x8c240003, */
5133                 .inputs         = { {
5134                         .type = SAA7134_INPUT_TV,
5135                         .vmux = 1,
5136                         .amux = TV,
5137                         .gpio = 0x01,
5138                 }, {
5139                         .type = SAA7134_INPUT_SVIDEO,
5140                         .vmux = 6,
5141                         .amux = LINE1,
5142                         .gpio = 0x02,
5143                 } },
5144                 .radio = {
5145                         .type = SAA7134_INPUT_RADIO,
5146                         .amux = TV,
5147                         .gpio = 0x00300001,
5148                 },
5149                 .mute = {
5150                         .type = SAA7134_INPUT_MUTE,
5151                         .amux = TV,
5152                         .gpio = 0x01,
5153                 },
5154         },
5155         [SAA7134_BOARD_AVERMEDIA_STUDIO_507UA] = {
5156                 /* Andy Shevchenko <andy@smile.org.ua> */
5157                 .name           = "Avermedia AVerTV Studio 507UA",
5158                 .audio_clock    = 0x00187de7,
5159                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3, /* Should be MK5 */
5160                 .radio_type     = UNSET,
5161                 .tuner_addr     = ADDR_UNSET,
5162                 .radio_addr     = ADDR_UNSET,
5163                 .tda9887_conf   = TDA9887_PRESENT,
5164                 .gpiomask       = 0x03,
5165                 .inputs         = { {
5166                         .type = SAA7134_INPUT_TV,
5167                         .vmux = 1,
5168                         .amux = TV,
5169                         .gpio = 0x00,
5170                 }, {
5171                         .type = SAA7134_INPUT_COMPOSITE1,
5172                         .vmux = 3,
5173                         .amux = LINE1,
5174                         .gpio = 0x00,
5175                 }, {
5176                         .type = SAA7134_INPUT_SVIDEO,
5177                         .vmux = 8,
5178                         .amux = LINE1,
5179                         .gpio = 0x00,
5180                 } },
5181                 .radio = {
5182                         .type = SAA7134_INPUT_RADIO,
5183                         .amux = LINE2,
5184                         .gpio = 0x01,
5185                 },
5186                 .mute  = {
5187                         .type = SAA7134_INPUT_MUTE,
5188                         .amux = LINE1,
5189                         .gpio = 0x00,
5190                 },
5191         },
5192         [SAA7134_BOARD_VIDEOMATE_S350] = {
5193                 /* Jan D. Louw <jd.louw@mweb.co.za */
5194                 .name           = "Compro VideoMate S350/S300",
5195                 .audio_clock    = 0x00187de7,
5196                 .tuner_type     = TUNER_ABSENT,
5197                 .radio_type     = UNSET,
5198                 .tuner_addr     = ADDR_UNSET,
5199                 .radio_addr     = ADDR_UNSET,
5200                 .mpeg           = SAA7134_MPEG_DVB,
5201                 .inputs = { {
5202                         .type = SAA7134_INPUT_COMPOSITE1,
5203                         .vmux   = 0,
5204                         .amux   = LINE1,
5205                 }, {
5206                         .type = SAA7134_INPUT_SVIDEO,
5207                         .vmux   = 8, /* Not tested */
5208                         .amux   = LINE1
5209                 } },
5210         },
5211         [SAA7134_BOARD_BEHOLD_X7] = {
5212                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5213                 .name           = "Beholder BeholdTV X7",
5214                 .audio_clock    = 0x00187de7,
5215                 .tuner_type     = TUNER_XC5000,
5216                 .radio_type     = UNSET,
5217                 .tuner_addr     = ADDR_UNSET,
5218                 .radio_addr     = ADDR_UNSET,
5219                 .mpeg           = SAA7134_MPEG_DVB,
5220                 .inputs         = { {
5221                         .type = SAA7134_INPUT_TV,
5222                         .vmux = 2,
5223                         .amux = TV,
5224                 }, {
5225                         .type = SAA7134_INPUT_COMPOSITE1,
5226                         .vmux = 0,
5227                         .amux = LINE1,
5228                 }, {
5229                         .type = SAA7134_INPUT_SVIDEO,
5230                         .vmux = 9,
5231                         .amux = LINE1,
5232                 } },
5233                 .radio = {
5234                         .type = SAA7134_INPUT_RADIO,
5235                         .amux = TV,
5236                 },
5237         },
5238         [SAA7134_BOARD_ZOLID_HYBRID_PCI] = {
5239                 .name           = "Zolid Hybrid TV Tuner PCI",
5240                 .audio_clock    = 0x00187de7,
5241                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5242                 .radio_type     = UNSET,
5243                 .tuner_addr     = ADDR_UNSET,
5244                 .radio_addr     = ADDR_UNSET,
5245                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF },
5246                 .mpeg           = SAA7134_MPEG_DVB,
5247                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5248                 .inputs         = {{
5249                         .type = SAA7134_INPUT_TV,
5250                         .vmux = 1,
5251                         .amux = TV,
5252                 } },
5253                 .radio = {      /* untested */
5254                         .type = SAA7134_INPUT_RADIO,
5255                         .amux = TV,
5256                 },
5257         },
5258         [SAA7134_BOARD_ASUS_EUROPA_HYBRID] = {
5259                 .name           = "Asus Europa Hybrid OEM",
5260                 .audio_clock    = 0x00187de7,
5261                 .tuner_type     = TUNER_PHILIPS_TD1316,
5262                 .radio_type     = UNSET,
5263                 .tuner_addr     = 0x61,
5264                 .radio_addr     = ADDR_UNSET,
5265                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5266                 .mpeg           = SAA7134_MPEG_DVB,
5267                 .inputs = { {
5268                         .type = SAA7134_INPUT_TV,
5269                         .vmux   = 3,
5270                         .amux   = TV,
5271                 }, {
5272                         .type = SAA7134_INPUT_COMPOSITE1,
5273                         .vmux   = 4,
5274                         .amux   = LINE2,
5275                 }, {
5276                         .type = SAA7134_INPUT_SVIDEO,
5277                         .vmux   = 8,
5278                         .amux   = LINE2,
5279                 } },
5280         },
5281         [SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S] = {
5282                 .name           = "Leadtek Winfast DTV1000S",
5283                 .audio_clock    = 0x00187de7,
5284                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5285                 .radio_type     = UNSET,
5286                 .tuner_addr     = ADDR_UNSET,
5287                 .radio_addr     = ADDR_UNSET,
5288                 .mpeg           = SAA7134_MPEG_DVB,
5289                 .inputs         = { {
5290                         .type = SAA7134_INPUT_COMPOSITE1,
5291                         .vmux = 3,
5292                 }, {
5293                         .type = SAA7134_INPUT_SVIDEO,
5294                         .vmux = 8,
5295                 } },
5296         },
5297         [SAA7134_BOARD_BEHOLD_505RDS_MK3] = {
5298                 /*       Beholder Intl. Ltd. 2008      */
5299                 /*Dmitry Belimov <d.belimov@gmail.com> */
5300                 .name           = "Beholder BeholdTV 505 RDS",
5301                 .audio_clock    = 0x00200000,
5302                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
5303                 .radio_type     = UNSET,
5304                 .tuner_addr     = ADDR_UNSET,
5305                 .radio_addr     = ADDR_UNSET,
5306                 .rds_addr       = 0x10,
5307                 .tda9887_conf   = TDA9887_PRESENT,
5308                 .gpiomask       = 0x00008000,
5309                 .inputs         = {{
5310                         .type = SAA7134_INPUT_TV,
5311                         .vmux = 3,
5312                         .amux = LINE2,
5313                 }, {
5314                         .type = SAA7134_INPUT_COMPOSITE1,
5315                         .vmux = 1,
5316                         .amux = LINE1,
5317                 }, {
5318                         .type = SAA7134_INPUT_SVIDEO,
5319                         .vmux = 8,
5320                         .amux = LINE1,
5321                 } },
5322                 .mute = {
5323                         .type = SAA7134_INPUT_MUTE,
5324                         .amux = LINE1,
5325                 },
5326                 .radio = {
5327                         .type = SAA7134_INPUT_RADIO,
5328                         .amux = LINE2,
5329                 },
5330         },
5331         [SAA7134_BOARD_HAWELL_HW_404M7] = {
5332                 /* Hawell HW-404M7 & Hawell HW-808M7  */
5333                 /* Bogoslovskiy Viktor <bogovic@bk.ru> */
5334                 .name         = "Hawell HW-404M7",
5335                 .audio_clock   = 0x00200000,
5336                 .tuner_type    = UNSET,
5337                 .radio_type    = UNSET,
5338                 .tuner_addr   = ADDR_UNSET,
5339                 .radio_addr   = ADDR_UNSET,
5340                 .gpiomask      = 0x389c00,
5341                 .inputs       = {{
5342                         .type = SAA7134_INPUT_COMPOSITE1,
5343                         .vmux = 3,
5344                         .amux = LINE1,
5345                         .gpio = 0x01fc00,
5346                 } },
5347         },
5348         [SAA7134_BOARD_BEHOLD_H7] = {
5349                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5350                 .name           = "Beholder BeholdTV H7",
5351                 .audio_clock    = 0x00187de7,
5352                 .tuner_type     = TUNER_XC5000,
5353                 .radio_type     = UNSET,
5354                 .tuner_addr     = ADDR_UNSET,
5355                 .radio_addr     = ADDR_UNSET,
5356                 .mpeg           = SAA7134_MPEG_DVB,
5357                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5358                 .inputs         = { {
5359                         .type = SAA7134_INPUT_TV,
5360                         .vmux = 2,
5361                         .amux = TV,
5362                 }, {
5363                         .type = SAA7134_INPUT_COMPOSITE1,
5364                         .vmux = 0,
5365                         .amux = LINE1,
5366                 }, {
5367                         .type = SAA7134_INPUT_SVIDEO,
5368                         .vmux = 9,
5369                         .amux = LINE1,
5370                 } },
5371                 .radio = {
5372                         .type = SAA7134_INPUT_RADIO,
5373                         .amux = TV,
5374                 },
5375         },
5376         [SAA7134_BOARD_BEHOLD_A7] = {
5377                 /* Beholder Intl. Ltd. Dmitry Belimov <d.belimov@gmail.com> */
5378                 .name           = "Beholder BeholdTV A7",
5379                 .audio_clock    = 0x00187de7,
5380                 .tuner_type     = TUNER_XC5000,
5381                 .radio_type     = UNSET,
5382                 .tuner_addr     = ADDR_UNSET,
5383                 .radio_addr     = ADDR_UNSET,
5384                 .inputs         = { {
5385                         .type = SAA7134_INPUT_TV,
5386                         .vmux = 2,
5387                         .amux = TV,
5388                 }, {
5389                         .type = SAA7134_INPUT_COMPOSITE1,
5390                         .vmux = 0,
5391                         .amux = LINE1,
5392                 }, {
5393                         .type = SAA7134_INPUT_SVIDEO,
5394                         .vmux = 9,
5395                         .amux = LINE1,
5396                 } },
5397                 .radio = {
5398                         .type = SAA7134_INPUT_RADIO,
5399                         .amux = TV,
5400                 },
5401         },
5402         [SAA7134_BOARD_TECHNOTREND_BUDGET_T3000] = {
5403                 .name           = "TechoTrend TT-budget T-3000",
5404                 .tuner_type     = TUNER_PHILIPS_TD1316,
5405                 .audio_clock    = 0x00187de7,
5406                 .radio_type     = UNSET,
5407                 .tuner_addr     = 0x63,
5408                 .radio_addr     = ADDR_UNSET,
5409                 .tda9887_conf   = TDA9887_PRESENT | TDA9887_PORT1_ACTIVE,
5410                 .mpeg           = SAA7134_MPEG_DVB,
5411                 .inputs = {{
5412                         .type = SAA7134_INPUT_TV,
5413                         .vmux   = 3,
5414                         .amux   = TV,
5415                 }, {
5416                         .type = SAA7134_INPUT_COMPOSITE1,
5417                         .vmux   = 0,
5418                         .amux   = LINE2,
5419                 }, {
5420                         .type = SAA7134_INPUT_SVIDEO,
5421                         .vmux   = 8,
5422                         .amux   = LINE2,
5423                 } },
5424         },
5425         [SAA7134_BOARD_VIDEOMATE_M1F] = {
5426                 /* Pavel Osnova <pvosnova@gmail.com> */
5427                 .name           = "Compro VideoMate Vista M1F",
5428                 .audio_clock    = 0x00187de7,
5429                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
5430                 .radio_type     = TUNER_TEA5767,
5431                 .tuner_addr     = ADDR_UNSET,
5432                 .radio_addr     = 0x60,
5433                 .inputs         = { {
5434                         .type = SAA7134_INPUT_TV,
5435                         .vmux = 1,
5436                         .amux = TV,
5437                 }, {
5438                         .type = SAA7134_INPUT_COMPOSITE1,
5439                         .vmux = 3,
5440                         .amux = LINE2,
5441                 }, {
5442                         .type = SAA7134_INPUT_SVIDEO,
5443                         .vmux = 8,
5444                         .amux = LINE2,
5445                 } },
5446                 .radio = {
5447                         .type = SAA7134_INPUT_RADIO,
5448                         .amux = LINE1,
5449                 },
5450                 .mute = {
5451                         .type = SAA7134_INPUT_MUTE,
5452                         .amux = TV,
5453                 },
5454         },
5455         [SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2] = {
5456                 /* Timothy Lee <timothy.lee@siriushk.com> */
5457                 .name           = "MagicPro ProHDTV Pro2 DMB-TH/Hybrid",
5458                 .audio_clock    = 0x00187de7,
5459                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5460                 .radio_type     = UNSET,
5461                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_ON_BRIDGE },
5462                 .tuner_addr     = ADDR_UNSET,
5463                 .radio_addr     = ADDR_UNSET,
5464                 .gpiomask       = 0x02050000,
5465                 .mpeg           = SAA7134_MPEG_DVB,
5466                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5467                 .inputs         = { {
5468                         .type = SAA7134_INPUT_TV,
5469                         .vmux   = 1,
5470                         .amux   = TV,
5471                         .gpio   = 0x00050000,
5472                 }, {
5473                         .type = SAA7134_INPUT_COMPOSITE1,
5474                         .vmux   = 3,
5475                         .amux   = LINE1,
5476                         .gpio   = 0x00050000,
5477                 }, {
5478                         .type = SAA7134_INPUT_SVIDEO,
5479                         .vmux   = 8,
5480                         .amux   = LINE1,
5481                         .gpio   = 0x00050000,
5482                 } },
5483                 .radio = {
5484                         .type = SAA7134_INPUT_RADIO,
5485                         .amux   = TV,
5486                         .gpio   = 0x00050000,
5487                 },
5488                 .mute = {
5489                         .type = SAA7134_INPUT_MUTE,
5490                         .vmux   = 0,
5491                         .amux   = TV,
5492                         .gpio   = 0x00050000,
5493                 },
5494         },
5495         [SAA7134_BOARD_BEHOLD_501] = {
5496                 /*       Beholder Intl. Ltd. 2010       */
5497                 /* Dmitry Belimov <d.belimov@gmail.com> */
5498                 .name           = "Beholder BeholdTV 501",
5499                 .audio_clock    = 0x00200000,
5500                 .tuner_type     = TUNER_ABSENT,
5501                 .radio_type     = UNSET,
5502                 .tuner_addr     = ADDR_UNSET,
5503                 .radio_addr     = ADDR_UNSET,
5504                 .gpiomask       = 0x00008000,
5505                 .inputs         = { {
5506                         .type = SAA7134_INPUT_TV,
5507                         .vmux = 3,
5508                         .amux = LINE2,
5509                 }, {
5510                         .type = SAA7134_INPUT_COMPOSITE1,
5511                         .vmux = 1,
5512                         .amux = LINE1,
5513                 }, {
5514                         .type = SAA7134_INPUT_SVIDEO,
5515                         .vmux = 8,
5516                         .amux = LINE1,
5517                 } },
5518                 .mute = {
5519                         .type = SAA7134_INPUT_MUTE,
5520                         .amux = LINE1,
5521                 },
5522         },
5523         [SAA7134_BOARD_BEHOLD_503FM] = {
5524                 /*       Beholder Intl. Ltd. 2010       */
5525                 /* Dmitry Belimov <d.belimov@gmail.com> */
5526                 .name           = "Beholder BeholdTV 503 FM",
5527                 .audio_clock    = 0x00200000,
5528                 .tuner_type     = TUNER_ABSENT,
5529                 .radio_type     = UNSET,
5530                 .tuner_addr     = ADDR_UNSET,
5531                 .radio_addr     = ADDR_UNSET,
5532                 .gpiomask       = 0x00008000,
5533                 .inputs         = { {
5534                         .type = SAA7134_INPUT_TV,
5535                         .vmux = 3,
5536                         .amux = LINE2,
5537                 }, {
5538                         .type = SAA7134_INPUT_COMPOSITE1,
5539                         .vmux = 1,
5540                         .amux = LINE1,
5541                 }, {
5542                         .type = SAA7134_INPUT_SVIDEO,
5543                         .vmux = 8,
5544                         .amux = LINE1,
5545                 } },
5546                 .mute = {
5547                         .type = SAA7134_INPUT_MUTE,
5548                         .amux = LINE1,
5549                 },
5550         },
5551         [SAA7134_BOARD_SENSORAY811_911] = {
5552                 .name           = "Sensoray 811/911",
5553                 .audio_clock    = 0x00200000,
5554                 .tuner_type     = TUNER_ABSENT,
5555                 .radio_type     = UNSET,
5556                 .tuner_addr     = ADDR_UNSET,
5557                 .radio_addr     = ADDR_UNSET,
5558                 .inputs         = {{
5559                         .type = SAA7134_INPUT_COMPOSITE1,
5560                         .vmux   = 0,
5561                         .amux   = LINE1,
5562                 }, {
5563                         .type = SAA7134_INPUT_COMPOSITE3,
5564                         .vmux   = 2,
5565                         .amux   = LINE1,
5566                 }, {
5567                         .type = SAA7134_INPUT_SVIDEO,
5568                         .vmux   = 8,
5569                         .amux   = LINE1,
5570                 } },
5571         },
5572         [SAA7134_BOARD_KWORLD_PC150U] = {
5573                 .name           = "Kworld PC150-U",
5574                 .audio_clock    = 0x00187de7,
5575                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5576                 .radio_type     = UNSET,
5577                 .tuner_addr     = ADDR_UNSET,
5578                 .radio_addr     = ADDR_UNSET,
5579                 .mpeg           = SAA7134_MPEG_DVB,
5580                 .gpiomask       = 1 << 21,
5581                 .ts_type        = SAA7134_MPEG_TS_PARALLEL,
5582                 .inputs = { {
5583                         .type = SAA7134_INPUT_TV,
5584                         .vmux   = 1,
5585                         .amux   = TV,
5586                 }, {
5587                         .type = SAA7134_INPUT_COMPOSITE,
5588                         .vmux   = 3,
5589                         .amux   = LINE1,
5590                 }, {
5591                         .type = SAA7134_INPUT_SVIDEO,
5592                         .vmux   = 8,
5593                         .amux   = LINE2,
5594                 } },
5595                 .radio = {
5596                         .type = SAA7134_INPUT_RADIO,
5597                         .amux   = TV,
5598                         .gpio   = 0x0000000,
5599                 },
5600         },
5601         [SAA7134_BOARD_HAWELL_HW_9004V1] = {
5602                 /* Hawell HW-9004V1 */
5603                 /* Vadim Frolov <fralik@gmail.com> */
5604                 .name         = "Hawell HW-9004V1",
5605                 .audio_clock   = 0x00200000,
5606                 .tuner_type    = UNSET,
5607                 .radio_type    = UNSET,
5608                 .tuner_addr   = ADDR_UNSET,
5609                 .radio_addr   = ADDR_UNSET,
5610                 .gpiomask      = 0x618E700,
5611                 .inputs       = {{
5612                         .type = SAA7134_INPUT_COMPOSITE1,
5613                         .vmux = 3,
5614                         .amux = LINE1,
5615                         .gpio = 0x6010000,
5616                 } },
5617         },
5618         [SAA7134_BOARD_AVERMEDIA_A706] = {
5619                 .name           = "AverMedia AverTV Satellite Hybrid+FM A706",
5620                 .audio_clock    = 0x00187de7,
5621                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5622                 .radio_type     = UNSET,
5623                 .tuner_addr     = ADDR_UNSET,
5624                 .radio_addr     = ADDR_UNSET,
5625                 .tda829x_conf   = { .lna_cfg = TDA8290_LNA_OFF,
5626                                     .no_i2c_gate = 1,
5627                                     .tda18271_std_map = &aver_a706_std_map },
5628                 .gpiomask       = 1 << 11,
5629                 .mpeg           = SAA7134_MPEG_DVB,
5630                 .inputs         = {{
5631                         .type = SAA7134_INPUT_TV,
5632                         .vmux = 1,
5633                         .amux = TV,
5634                 }, {
5635                         .type = SAA7134_INPUT_COMPOSITE,
5636                         .vmux = 4,
5637                         .amux = LINE1,
5638                 }, {
5639                         .type = SAA7134_INPUT_SVIDEO,
5640                         .vmux = 8,
5641                         .amux = LINE1,
5642                 } },
5643                 .radio = {
5644                         .type = SAA7134_INPUT_RADIO,
5645                         .amux = TV,
5646                         .gpio = 0x0000800,
5647                 },
5648         },
5649         [SAA7134_BOARD_WIS_VOYAGER] = {
5650                 .name           = "WIS Voyager or compatible",
5651                 .audio_clock    = 0x00200000,
5652                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5653                 .radio_type     = UNSET,
5654                 .tuner_addr     = ADDR_UNSET,
5655                 .radio_addr     = ADDR_UNSET,
5656                 .mpeg           = SAA7134_MPEG_GO7007,
5657                 .inputs         = { {
5658                         .type = SAA7134_INPUT_COMPOSITE1,
5659                         .vmux = 0,
5660                         .amux = LINE2,
5661                 }, {
5662                         .type = SAA7134_INPUT_TV,
5663                         .vmux = 3,
5664                         .amux = TV,
5665                 }, {
5666                         .type = SAA7134_INPUT_SVIDEO,
5667                         .vmux = 6,
5668                 .amux = LINE1,
5669                 } },
5670         },
5671         [SAA7134_BOARD_AVERMEDIA_505] = {
5672                 /* much like the "studio" version but without radio
5673                 * and another tuner (dbaryshkov@gmail.com) */
5674                 .name           = "AverMedia AverTV/505",
5675                 .audio_clock    = 0x00187de7,
5676                 .tuner_type     = TUNER_PHILIPS_FQ1216ME,
5677                 .radio_type     = UNSET,
5678                 .tuner_addr     = ADDR_UNSET,
5679                 .radio_addr     = ADDR_UNSET,
5680                 .tda9887_conf   = TDA9887_PRESENT,
5681                 .inputs         = {{
5682                         .type = SAA7134_INPUT_TV,
5683                         .vmux = 1,
5684                         .amux = LINE2,
5685                 }, {
5686                         .type = SAA7134_INPUT_COMPOSITE1,
5687                         .vmux = 0,
5688                         .amux = LINE2,
5689                 }, {
5690                         .type = SAA7134_INPUT_COMPOSITE2,
5691                         .vmux = 3,
5692                         .amux = LINE2,
5693                 }, {
5694                         .type = SAA7134_INPUT_SVIDEO,
5695                         .vmux = 8,
5696                         .amux = LINE2,
5697                 } },
5698                 .mute = {
5699                         .type = SAA7134_INPUT_MUTE,
5700                         .amux = LINE1,
5701                 },
5702         },
5703         [SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM] = {
5704                 .name           = "Leadtek Winfast TV2100 FM",
5705                 .audio_clock    = 0x00187de7,
5706                 .tuner_type     = TUNER_TNF_5335MF,
5707                 .radio_type     = UNSET,
5708                 .tuner_addr     = ADDR_UNSET,
5709                 .radio_addr     = ADDR_UNSET,
5710                 .gpiomask       = 0x0d,
5711                 .inputs         = {{
5712                         .type = SAA7134_INPUT_TV_MONO,
5713                         .vmux = 1,
5714                         .amux = LINE1,
5715                         .gpio = 0x00,
5716                 }, {
5717                         .type = SAA7134_INPUT_COMPOSITE1,
5718                         .vmux = 3,
5719                         .amux = LINE2,
5720                         .gpio = 0x08,
5721                 }, {
5722                         .type = SAA7134_INPUT_SVIDEO,
5723                         .vmux = 8,
5724                         .amux = LINE2,
5725                         .gpio = 0x08,
5726                 } },
5727                 .radio = {
5728                         .type = SAA7134_INPUT_RADIO,
5729                         .amux = LINE1,
5730                         .gpio = 0x04,
5731                 },
5732                 .mute = {
5733                         .type = SAA7134_INPUT_MUTE,
5734                         .amux = LINE1,
5735                         .gpio = 0x08,
5736                 },
5737         },
5738         [SAA7134_BOARD_SNAZIO_TVPVR_PRO] = {
5739                 .name           = "SnaZio* TVPVR PRO",
5740                 .audio_clock    = 0x00187de7,
5741                 .tuner_type     = TUNER_PHILIPS_TDA8290,
5742                 .radio_type     = UNSET,
5743                 .tuner_addr     = ADDR_UNSET,
5744                 .radio_addr     = ADDR_UNSET,
5745                 .gpiomask       = 1 << 21,
5746                 .inputs         = { {
5747                         .type = SAA7134_INPUT_TV,
5748                         .vmux = 1,
5749                         .amux = TV,
5750                         .gpio = 0x0000000,
5751                 }, {
5752                         .type = SAA7134_INPUT_COMPOSITE1,
5753                         .vmux = 3,
5754                         .amux = LINE2,
5755                         .gpio = 0x0000000,
5756                 }, {
5757                         .type = SAA7134_INPUT_SVIDEO,
5758                         .vmux = 8,
5759                         .amux = LINE2,
5760                         .gpio = 0x0000000,
5761                 } },
5762                 .radio = {
5763                         .type = SAA7134_INPUT_RADIO,
5764                         .amux = TV,
5765                         .gpio = 0x0200000,
5766                 },
5767         },
5768 };
5769
5770 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
5771
5772 /* ------------------------------------------------------------------ */
5773 /* PCI ids + subsystem IDs                                            */
5774
5775 struct pci_device_id saa7134_pci_tbl[] = {
5776         {
5777                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5778                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5779                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5780                 .subdevice    = 0x2001,
5781                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5782         },{
5783                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5784                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5785                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5786                 .subdevice    = 0x2001,
5787                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
5788         },{
5789                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5790                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5791                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5792                 .subdevice    = 0x6752,
5793                 .driver_data  = SAA7134_BOARD_EMPRESS,
5794         },{
5795                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5796                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5797                 .subvendor    = 0x1131,
5798                 .subdevice    = 0x4e85,
5799                 .driver_data  = SAA7134_BOARD_MONSTERTV,
5800         },{
5801                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5802                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5803                 .subvendor    = 0x153b,
5804                 .subdevice    = 0x1142,
5805                 .driver_data  = SAA7134_BOARD_CINERGY400,
5806         },{
5807                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5808                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5809                 .subvendor    = 0x153b,
5810                 .subdevice    = 0x1143,
5811                 .driver_data  = SAA7134_BOARD_CINERGY600,
5812         },{
5813                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5814                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5815                 .subvendor    = 0x153b,
5816                 .subdevice    = 0x1158,
5817                 .driver_data  = SAA7134_BOARD_CINERGY600_MK3,
5818         },{
5819                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5820                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5821                 .subvendor    = 0x153b,
5822                 .subdevice    = 0x1162,
5823                 .driver_data  = SAA7134_BOARD_CINERGY400_CARDBUS,
5824         },{
5825                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5826                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5827                 .subvendor    = 0x5169,
5828                 .subdevice    = 0x0138,
5829                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000_NTSC,
5830         },{
5831                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5832                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5833                 .subvendor    = 0x5168,
5834                 .subdevice    = 0x0138,
5835                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5836         },{
5837                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5838                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5839                 .subvendor    = 0x4e42,                         /* "Typhoon PCI Capture TV Card" Art.No. 50673 */
5840                 .subdevice    = 0x0138,
5841                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
5842         },{
5843                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5844                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5845                 .subvendor    = 0x5168,
5846                 .subdevice    = 0x0138,
5847                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
5848         },{
5849                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5850                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5851                 .subvendor    = 0x4e42,         /* Typhoon */
5852                 .subdevice    = 0x0138,         /* LifeView FlyTV Prime30 OEM */
5853                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
5854         },{
5855                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5856                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5857                 .subvendor    = 0x5168,
5858                 .subdevice    = 0x0212, /* minipci, LR212 */
5859                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5860         },{
5861                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5862                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5863                 .subvendor    = 0x14c0,
5864                 .subdevice    = 0x1212, /* minipci, LR1212 */
5865                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI2,
5866         },{
5867                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5868                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5869                 .subvendor    = 0x4e42,
5870                 .subdevice    = 0x0212, /* OEM minipci, LR212 */
5871                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
5872         },{
5873                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5874                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5875                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
5876                 .subdevice    = 0x0214, /* Standard PCI, LR214 Rev E and earlier (SAA7135) */
5877                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
5878         },{
5879                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5880                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5881                 .subvendor    = 0x5168, /* Animation Technologies (LifeView) */
5882                 .subdevice    = 0x5214, /* Standard PCI, LR214 Rev F onwards (SAA7131) */
5883                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM,
5884         },{
5885                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5886                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5887                 .subvendor    = 0x1489, /* KYE */
5888                 .subdevice    = 0x0214, /* Genius VideoWonder ProTV */
5889                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_FM, /* is an LR214WF actually */
5890         },{
5891                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5892                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5893                 .subvendor    = 0x16be,
5894                 .subdevice    = 0x0003,
5895                 .driver_data  = SAA7134_BOARD_MD7134,
5896         },{
5897                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5898                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5899                 .subvendor    = 0x16be, /* CTX946 analog TV, HW mpeg, DVB-T */
5900                 .subdevice    = 0x5000, /* only analog TV and DVB-T for now */
5901                 .driver_data  = SAA7134_BOARD_MD7134,
5902         }, {
5903                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5904                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5905                 .subvendor    = 0x1048,
5906                 .subdevice    = 0x226b,
5907                 .driver_data  = SAA7134_BOARD_ELSA,
5908         },{
5909                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5910                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5911                 .subvendor    = 0x1048,
5912                 .subdevice    = 0x226a,
5913                 .driver_data  = SAA7134_BOARD_ELSA_500TV,
5914         },{
5915                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5916                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5917                 .subvendor    = 0x1048,
5918                 .subdevice    = 0x226c,
5919                 .driver_data  = SAA7134_BOARD_ELSA_700TV,
5920         },{
5921                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5922                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5923                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
5924                 .subdevice    = 0x4842,
5925                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
5926         },{
5927                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5928                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5929                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
5930                 .subdevice    = 0x4845,
5931                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7135,
5932         },{
5933                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5934                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5935                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
5936                 .subdevice    = 0x4830,
5937                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
5938         },{
5939                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5940                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5941                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
5942                 .subdevice    = 0x4843,
5943                 .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
5944         },{
5945                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5946                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5947                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
5948                 .subdevice    = 0x4840,
5949                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
5950         },{
5951                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5952                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5953                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5954                 .subdevice    = 0xfe01,
5955                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
5956         },{
5957                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5958                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5959                 .subvendor    = 0x1894,
5960                 .subdevice    = 0xfe01,
5961                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
5962         },{
5963                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5964                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5965                 .subvendor    = 0x1894,
5966                 .subdevice    = 0xa006,
5967                 .driver_data  = SAA7134_BOARD_TVSTATION_DVR,
5968         },{
5969                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5970                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
5971                 .subvendor    = 0x1131,
5972                 .subdevice    = 0x7133,
5973                 .driver_data  = SAA7134_BOARD_VA1000POWER,
5974         },{
5975                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5976                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5977                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
5978                 .subdevice    = 0x2001,
5979                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
5980         },{
5981                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5982                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5983                 .subvendor    = 0x185b,
5984                 .subdevice    = 0xc100,
5985                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
5986         },{
5987                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5988                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
5989                 .subvendor    = 0x185b,
5990                 .subdevice    = 0xc100,
5991                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUS,
5992         },{
5993                 .vendor       = PCI_VENDOR_ID_PHILIPS,
5994                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
5995                 .subvendor    = PCI_VENDOR_ID_MATROX,
5996                 .subdevice    = 0x48d0,
5997                 .driver_data  = SAA7134_BOARD_CRONOS_PLUS,
5998         },{
5999                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6000                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6001                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6002                 .subdevice    = 0xa70b,
6003                 .driver_data  = SAA7134_BOARD_MD2819,
6004         },{
6005                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6006                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6007                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6008                 .subdevice    = 0xa7a1,
6009                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A700_PRO,
6010         }, {
6011                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6012                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6013                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6014                 .subdevice    = 0xa7a2,
6015                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A700_HYBRID,
6016         }, {
6017                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6018                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6019                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6020                 .subdevice    = 0x2115,
6021                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_305,
6022         },{
6023                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6024                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6025                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6026                 .subdevice    = 0xa115,
6027                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_505,
6028         }, {
6029                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6030                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6031                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6032                 .subdevice    = 0x2108,
6033                 .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
6034         },{
6035                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6036                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6037                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6038                 .subdevice    = 0x10ff,
6039                 .driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
6040         },{
6041                 /* AVerMedia CardBus */
6042                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6043                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6044                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6045                 .subdevice    = 0xd6ee,
6046                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS,
6047         },{
6048                 /* AVerMedia CardBus */
6049                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6050                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6051                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6052                 .subdevice    = 0xb7e9,
6053                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_501,
6054         }, {
6055                 /* TransGear 3000TV */
6056                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6057                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6058                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6059                 .subdevice    = 0x050c,
6060                 .driver_data  = SAA7134_BOARD_TG3000TV,
6061         },{
6062                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6063                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6064                 .subvendor    = 0x11bd,
6065                 .subdevice    = 0x002b,
6066                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
6067         },{
6068                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6069                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6070                 .subvendor    = 0x11bd,
6071                 .subdevice    = 0x002d,
6072                 .driver_data  = SAA7134_BOARD_PINNACLE_300I_DVBT_PAL,
6073         },{
6074                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6075                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6076                 .subvendor    = 0x1019,
6077                 .subdevice    = 0x4cb4,
6078                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP,
6079         },{
6080                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6081                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6082                 .subvendor    = 0x1019,
6083                 .subdevice    = 0x4cb5,
6084                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
6085         },{
6086                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6087                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6088                 .subvendor    = 0x1019,
6089                 .subdevice    = 0x4cb6,
6090                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB6,
6091         },{
6092                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6093                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6094                 .subvendor    = 0x12ab,
6095                 .subdevice    = 0x0800,
6096                 .driver_data  = SAA7134_BOARD_UPMOST_PURPLE_TV,
6097         },{
6098                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6099                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6100                 .subvendor    = 0x153b,
6101                 .subdevice    = 0x1152,
6102                 .driver_data  = SAA7134_BOARD_CINERGY200,
6103         },{
6104                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6105                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6106                 .subvendor    = 0x185b,
6107                 .subdevice    = 0xc100,
6108                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV_PVR,
6109         },{
6110                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6111                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6112                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6113                 .subdevice    = 0x9715,
6114                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_307,
6115         },{
6116                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6117                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6118                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6119                 .subdevice    = 0xa70a,
6120                 .driver_data  = SAA7134_BOARD_AVERMEDIA_307,
6121         },{
6122                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6123                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6124                 .subvendor    = 0x185b,
6125                 .subdevice    = 0xc200,
6126                 .driver_data  = SAA7134_BOARD_VIDEOMATE_GOLD_PLUS,
6127         },{
6128                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6129                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6130                 .subvendor    = 0x1540,
6131                 .subdevice    = 0x9524,
6132                 .driver_data  = SAA7134_BOARD_PROVIDEO_PV952,
6133
6134         },{
6135                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6136                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6137                 .subvendor    = 0x5168,
6138                 .subdevice    = 0x0502,                /* Cardbus version */
6139                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6140         },{
6141                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6142                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6143                 .subvendor    = 0x5168,
6144                 .subdevice    = 0x0306,                /* PCI version */
6145                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6146         },{
6147                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6148                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6149                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6150                 .subdevice    = 0xf31f,
6151                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM,
6152
6153         },{
6154                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6155                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6156                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6157                 .subdevice    = 0xf11d,
6158                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M135A,
6159         }, {
6160                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6161                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6162                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6163                 .subdevice    = 0x4155,
6164                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6165         }, {
6166                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6167                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6168                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6169                 .subdevice    = 0x4255,
6170                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M733A,
6171         }, {
6172                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6173                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6174                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6175                 .subdevice    = 0x2004,
6176                 .driver_data  = SAA7134_BOARD_PHILIPS_TOUGH,
6177         },{
6178                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6179                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6180                 .subvendor    = 0x1421,
6181                 .subdevice    = 0x0350,         /* PCI version */
6182                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6183         },{
6184                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6185                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6186                 .subvendor    = 0x1421,
6187                 .subdevice    = 0x0351,         /* PCI version, new revision */
6188                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6189         },{
6190                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6191                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6192                 .subvendor    = 0x1421,
6193                 .subdevice    = 0x0370,         /* cardbus version */
6194                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6195         },{
6196                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6197                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6198                 .subvendor    = 0x1421,
6199                 .subdevice    = 0x1370,        /* cardbus version */
6200                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_TV,
6201
6202         },{
6203                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6204                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6205                 .subvendor    = 0x4e42,         /* Typhoon */
6206                 .subdevice    = 0x0502,         /* LifeView LR502 OEM */
6207                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6208         },{
6209                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6210                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6211                 .subvendor    = 0x1043,
6212                 .subdevice    = 0x0210,         /* mini pci NTSC version */
6213                 .driver_data  = SAA7134_BOARD_FLYTV_DIGIMATRIX,
6214         },{
6215                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6216                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6217                 .subvendor    = 0x1043,
6218                 .subdevice    = 0x0210,         /* mini pci PAL/SECAM version */
6219                 .driver_data  = SAA7134_BOARD_ASUSTEK_DIGIMATRIX_TV,
6220
6221         },{
6222                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6223                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6224                 .subvendor    = 0x0000, /* It shouldn't break anything, since subdevice id seems unique */
6225                 .subdevice    = 0x4091,
6226                 .driver_data  = SAA7134_BOARD_BEHOLD_409FM,
6227         },{
6228                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6229                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6230                 .subvendor    = 0x5456, /* GoTView */
6231                 .subdevice    = 0x7135,
6232                 .driver_data  = SAA7134_BOARD_GOTVIEW_7135,
6233         },{
6234                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6235                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6236                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6237                 .subdevice    = 0x2004,
6238                 .driver_data  = SAA7134_BOARD_PHILIPS_EUROPA,
6239         },{
6240                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6241                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6242                 .subvendor    = 0x185b,
6243                 .subdevice    = 0xc900,
6244                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,
6245         },{
6246                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6247                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6248                 .subvendor    = 0x185b,
6249                 .subdevice    = 0xc901,
6250                 .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_200,
6251         },{
6252                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6253                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6254                 .subvendor    = 0x1435,
6255                 .subdevice    = 0x7350,
6256                 .driver_data  = SAA7134_BOARD_RTD_VFG7350,
6257         },{
6258                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6259                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6260                 .subvendor    = 0x1435,
6261                 .subdevice    = 0x7330,
6262                 .driver_data  = SAA7134_BOARD_RTD_VFG7330,
6263         },{
6264                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6265                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6266                 .subvendor    = 0x1461,
6267                 .subdevice    = 0x1044,
6268                 .driver_data  = SAA7134_BOARD_AVERMEDIA_AVERTVHD_A180,
6269         },{
6270                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6271                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6272                 .subvendor    = 0x1131,
6273                 .subdevice    = 0x4ee9,
6274                 .driver_data  = SAA7134_BOARD_MONSTERTV_MOBILE,
6275         },{
6276                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6277                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6278                 .subvendor    = 0x11bd,
6279                 .subdevice    = 0x002e,
6280                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_110i,
6281         },{
6282                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6283                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6284                 .subvendor    = 0x1043,
6285                 .subdevice    = 0x4862,
6286                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_DUAL,
6287         },{
6288                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6289                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6290                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6291                 .subdevice    = 0x2018,
6292                 .driver_data  = SAA7134_BOARD_PHILIPS_TIGER,
6293         },{
6294                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6295                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6296                 .subvendor    = 0x1462,
6297                 .subdevice    = 0x6231, /* tda8275a, ks003 IR */
6298                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6299         },{
6300                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6301                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6302                 .subvendor    = 0x1462,
6303                 .subdevice    = 0x8624, /* tda8275, ks003 IR */
6304                 .driver_data  = SAA7134_BOARD_MSI_TVATANYWHERE_PLUS,
6305         },{
6306                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6307                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6308                 .subvendor    = 0x153b,
6309                 .subdevice    = 0x1160,
6310                 .driver_data  = SAA7134_BOARD_CINERGY250PCI,
6311         },{
6312                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6313                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,  /* SAA 7131E */
6314                 .subvendor    = 0x5168,
6315                 .subdevice    = 0x0319,
6316                 .driver_data  = SAA7134_BOARD_FLYDVB_TRIO,
6317         },{
6318                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6319                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6320                 .subvendor    = 0x1461,
6321                 .subdevice    = 0x2c05,
6322                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6323         },{
6324                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6325                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6326                 .subvendor    = 0x5168,
6327                 .subdevice    = 0x0301,
6328                 .driver_data  = SAA7134_BOARD_FLYDVBT_LR301,
6329         },{
6330                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6331                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6332                 .subvendor    = 0x0331,
6333                 .subdevice    = 0x1421,
6334                 .driver_data  = SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331,
6335         },{
6336                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6337                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6338                 .subvendor    = 0x17de,
6339                 .subdevice    = 0x7201,
6340                 .driver_data  = SAA7134_BOARD_TEVION_DVBT_220RF,
6341         },{
6342                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6343                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6344                 .subvendor    = 0x17de,
6345                 .subdevice    = 0x7250,
6346                 .driver_data  = SAA7134_BOARD_KWORLD_DVBT_210,
6347         },{
6348                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6349                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6350                 .subvendor    = 0x17de,
6351                 .subdevice    = 0x7350,
6352                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110,
6353         },{
6354                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6355                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6356                 .subvendor    = 0x17de,
6357                 .subdevice    = 0x7352,
6358                 .driver_data  = SAA7134_BOARD_KWORLD_ATSC110, /* ATSC 115 */
6359         },{
6360                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6361                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6362                 .subvendor    = 0x17de,
6363                 .subdevice    = 0xa134,
6364                 .driver_data  = SAA7134_BOARD_KWORLD_PC150U,
6365         }, {
6366                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6367                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6368                 .subvendor    = 0x1461,
6369                 .subdevice    = 0x7360,
6370                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B,
6371         },{
6372                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6373                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6374                 .subvendor    = 0x1461,
6375                 .subdevice    = 0x6360,
6376                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A169_B1,
6377         },{
6378                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6379                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6380                 .subvendor    = 0x16be,
6381                 .subdevice    = 0x0005,
6382                 .driver_data  = SAA7134_BOARD_MD7134_BRIDGE_2,
6383         },{
6384                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6385                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6386                 .subvendor    = 0x5168,
6387                 .subdevice    = 0x0300,
6388                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6389         },{
6390                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6391                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6392                 .subvendor    = 0x4e42,
6393                 .subdevice    = 0x0300,/* LR300 */
6394                 .driver_data  = SAA7134_BOARD_FLYDVBS_LR300,
6395         },{
6396                 .vendor = PCI_VENDOR_ID_PHILIPS,
6397                 .device = PCI_DEVICE_ID_PHILIPS_SAA7134,
6398                 .subvendor = 0x1489,
6399                 .subdevice = 0x0301,
6400                 .driver_data = SAA7134_BOARD_FLYDVBT_LR301,
6401         },{
6402                 .vendor = PCI_VENDOR_ID_PHILIPS,
6403                 .device = PCI_DEVICE_ID_PHILIPS_SAA7133,
6404                 .subvendor = 0x5168, /* Animation Technologies (LifeView) */
6405                 .subdevice = 0x0304,
6406                 .driver_data = SAA7134_BOARD_FLYTVPLATINUM_FM,
6407         },{
6408                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6409                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6410                 .subvendor    = 0x5168,
6411                 .subdevice    = 0x3306,
6412                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6413         },{
6414                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6415                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6416                 .subvendor    = 0x5168,
6417                 .subdevice    = 0x3502,  /* what's the difference to 0x3306 ?*/
6418                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6419         },{
6420                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6421                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6422                 .subvendor    = 0x5168,
6423                 .subdevice    = 0x3307, /* FlyDVB-T Hybrid Mini PCI */
6424                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6425         }, {
6426                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6427                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6428                 .subvendor    = 0x16be,
6429                 .subdevice    = 0x0007,
6430                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6431         },{
6432                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6433                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6434                 .subvendor    = 0x16be,
6435                 .subdevice    = 0x0008,
6436                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6437         },{
6438                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6439                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6440                 .subvendor    = 0x16be,
6441                 .subdevice    = 0x000d, /* triple CTX948_V1.1.1 */
6442                 .driver_data  = SAA7134_BOARD_MEDION_MD8800_QUADRO,
6443         }, {
6444                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6445                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6446                 .subvendor    = 0x1461,
6447                 .subdevice    = 0x2c05,
6448                 .driver_data  = SAA7134_BOARD_AVERMEDIA_777,
6449         },{
6450                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6451                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6452                 .subvendor    = 0x1489,
6453                 .subdevice    = 0x0502,                /* Cardbus version */
6454                 .driver_data  = SAA7134_BOARD_FLYDVBT_DUO_CARDBUS,
6455         },{
6456                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6457                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6458                 .subvendor    = 0x0919, /* Philips Proteus PRO 2309 */
6459                 .subdevice    = 0x2003,
6460                 .driver_data  = SAA7134_BOARD_PROTEUS_2309,
6461         },{
6462                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6463                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6464                 .subvendor    = 0x1461,
6465                 .subdevice    = 0x2c00,
6466                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16AR,
6467         },{
6468                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6469                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6470                 .subvendor    = 0x1043,
6471                 .subdevice    = 0x4860,
6472                 .driver_data  = SAA7134_BOARD_ASUS_EUROPA2_HYBRID,
6473         },{
6474                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6475                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6476                 .subvendor    = 0x11bd,
6477                 .subdevice    = 0x002f,
6478                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_310i,
6479         },{
6480                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6481                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6482                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6483                 .subdevice    = 0x9715,
6484                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507,
6485         },{
6486                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6487                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6488                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6489                 .subdevice    = 0xa11b,
6490                 .driver_data  = SAA7134_BOARD_AVERMEDIA_STUDIO_507UA,
6491         }, {
6492                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6493                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6494                 .subvendor    = 0x1043,
6495                 .subdevice    = 0x4876,
6496                 .driver_data  = SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA,
6497         },{
6498                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6499                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6500                 .subvendor    = 0x0070,
6501                 .subdevice    = 0x6700,
6502                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6503         },{
6504                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6505                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6506                 .subvendor    = 0x0070,
6507                 .subdevice    = 0x6701,
6508                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6509         },{
6510                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6511                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6512                 .subvendor    = 0x0070,
6513                 .subdevice    = 0x6702,
6514                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6515         },{
6516                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6517                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6518                 .subvendor    = 0x0070,
6519                 .subdevice    = 0x6703,
6520                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6521         },{
6522                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6523                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6524                 .subvendor    = 0x0070,
6525                 .subdevice    = 0x6704,
6526                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6527         },{
6528                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6529                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6530                 .subvendor    = 0x0070,
6531                 .subdevice    = 0x6705,
6532                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1110,
6533         },{
6534                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6535                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6536                 .subvendor    = 0x0070,
6537                 .subdevice    = 0x6706,
6538                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6539         },{
6540                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6541                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6542                 .subvendor    = 0x0070,
6543                 .subdevice    = 0x6707,
6544                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6545         },{
6546                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6547                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6548                 .subvendor    = 0x0070,
6549                 .subdevice    = 0x6708,
6550                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1150,
6551         },{
6552                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6553                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6554                 .subvendor    = 0x0070,
6555                 .subdevice    = 0x6709,
6556                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6557         },{
6558                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6559                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6560                 .subvendor    = 0x0070,
6561                 .subdevice    = 0x670a,
6562                 .driver_data  = SAA7134_BOARD_HAUPPAUGE_HVR1120,
6563         },{
6564                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6565                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6566                 .subvendor    = 0x153b,
6567                 .subdevice    = 0x1172,
6568                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCMCIA,
6569         },{
6570                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6571                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6572                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6573                 .subdevice    = 0x2342,
6574                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6575         },{
6576                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6577                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6578                 .subvendor    = 0x1131,
6579                 .subdevice    = 0x2341,
6580                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6581         },{
6582                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6583                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6584                 .subvendor    = 0x3016,
6585                 .subdevice    = 0x2344,
6586                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV,
6587         },{
6588                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6589                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6590                 .subvendor    = 0x1131,
6591                 .subdevice    = 0x230f,
6592                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM,
6593         },{
6594                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6595                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6596                 .subvendor    = 0x1a7f,
6597                 .subdevice    = 0x2008,
6598                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM53,
6599         }, {
6600                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6601                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6602                 .subvendor    = 0x1a7f,
6603                 .subdevice    = 0x2108,
6604                 .driver_data  = SAA7134_BOARD_ENCORE_ENLTV_FM3,
6605         }, {
6606                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6607                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6608                 .subvendor    = 0x153b,
6609                 .subdevice    = 0x1175,
6610                 .driver_data  = SAA7134_BOARD_CINERGY_HT_PCI,
6611         },{
6612                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6613                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6614                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6615                 .subdevice    = 0xf31e,
6616                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M102,
6617         },{
6618                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6619                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6620                 .subvendor    = 0x4E42,         /* MSI */
6621                 .subdevice    = 0x0306,         /* TV@nywhere DUO */
6622                 .driver_data  = SAA7134_BOARD_FLYDVBTDUO,
6623         },{
6624                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6625                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6626                 .subvendor    = 0x1043,
6627                 .subdevice    = 0x4871,
6628                 .driver_data  = SAA7134_BOARD_ASUS_P7131_4871,
6629         },{
6630                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6631                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6632                 .subvendor    = 0x1043,
6633                 .subdevice    = 0x4857,         /* REV:1.00 */
6634                 .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER,
6635         },{
6636                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6637                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6638                 .subvendor    = 0x0919, /* SinoVideo PCI 2309 Proteus (7134) */
6639                 .subdevice    = 0x2003, /* OEM cardbus */
6640                 .driver_data  = SAA7134_BOARD_SABRENT_TV_PCB05,
6641         },{
6642                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6643                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6644                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6645                 .subdevice    = 0x2304,
6646                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER3,
6647         },{
6648                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6649                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6650                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6651                 .subdevice    = 0xf01d, /* AVerTV DVB-T Super 007 */
6652                 .driver_data  = SAA7134_BOARD_AVERMEDIA_SUPER_007,
6653         },{
6654                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6655                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6656                 .subvendor    = 0x0000,
6657                 .subdevice    = 0x4016,
6658                 .driver_data  = SAA7134_BOARD_BEHOLD_401,
6659         },{
6660                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6661                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6662                 .subvendor    = 0x0000,
6663                 .subdevice    = 0x4036,
6664                 .driver_data  = SAA7134_BOARD_BEHOLD_403,
6665         },{
6666                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6667                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6668                 .subvendor    = 0x0000,
6669                 .subdevice    = 0x4037,
6670                 .driver_data  = SAA7134_BOARD_BEHOLD_403FM,
6671         },{
6672                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6673                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6674                 .subvendor    = 0x0000,
6675                 .subdevice    = 0x4050,
6676                 .driver_data  = SAA7134_BOARD_BEHOLD_405,
6677         },{
6678                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6679                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6680                 .subvendor    = 0x0000,
6681                 .subdevice    = 0x4051,
6682                 .driver_data  = SAA7134_BOARD_BEHOLD_405FM,
6683         },{
6684                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6685                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6686                 .subvendor    = 0x0000,
6687                 .subdevice    = 0x4070,
6688                 .driver_data  = SAA7134_BOARD_BEHOLD_407,
6689         },{
6690                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6691                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6692                 .subvendor    = 0x0000,
6693                 .subdevice    = 0x4071,
6694                 .driver_data  = SAA7134_BOARD_BEHOLD_407FM,
6695         },{
6696                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6697                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6698                 .subvendor    = 0x0000,
6699                 .subdevice    = 0x4090,
6700                 .driver_data  = SAA7134_BOARD_BEHOLD_409,
6701         },{
6702                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6703                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6704                 .subvendor    = 0x0000,
6705                 .subdevice    = 0x505B,
6706                 .driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK5,
6707         }, {
6708                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6709                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6710                 .subvendor    = 0x0000,
6711                 .subdevice    = 0x5051,
6712                 .driver_data  = SAA7134_BOARD_BEHOLD_505RDS_MK3,
6713         },{
6714                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6715                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6716                 .subvendor    = 0x5ace,
6717                 .subdevice    = 0x5050,
6718                 .driver_data  = SAA7134_BOARD_BEHOLD_505FM,
6719         },{
6720                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6721                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6722                 .subvendor    = 0x0000,
6723                 .subdevice    = 0x5071,
6724                 .driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK3,
6725         },{
6726                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6727                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6728                 .subvendor    = 0x0000,
6729                 .subdevice    = 0x507B,
6730                 .driver_data  = SAA7134_BOARD_BEHOLD_507RDS_MK5,
6731         },{
6732                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6733                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6734                 .subvendor    = 0x5ace,
6735                 .subdevice    = 0x5070,
6736                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6737         },{
6738                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6739                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6740                 .subvendor    = 0x5ace,
6741                 .subdevice    = 0x5090,
6742                 .driver_data  = SAA7134_BOARD_BEHOLD_507_9FM,
6743         },{
6744                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6745                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6746                 .subvendor    = 0x0000,
6747                 .subdevice    = 0x5201,
6748                 .driver_data  = SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM,
6749         },{
6750                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6751                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6752                 .subvendor    = 0x5ace,
6753                 .subdevice    = 0x6070,
6754                 .driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK3,
6755         },{
6756                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6757                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6758                 .subvendor    = 0x5ace,
6759                 .subdevice    = 0x6071,
6760                 .driver_data  = SAA7134_BOARD_BEHOLD_607FM_MK5,
6761         },{
6762                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6763                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6764                 .subvendor    = 0x5ace,
6765                 .subdevice    = 0x6072,
6766                 .driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK3,
6767         },{
6768                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6769                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6770                 .subvendor    = 0x5ace,
6771                 .subdevice    = 0x6073,
6772                 .driver_data  = SAA7134_BOARD_BEHOLD_607RDS_MK5,
6773         },{
6774                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6775                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6776                 .subvendor    = 0x5ace,
6777                 .subdevice    = 0x6090,
6778                 .driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK3,
6779         },{
6780                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6781                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6782                 .subvendor    = 0x5ace,
6783                 .subdevice    = 0x6091,
6784                 .driver_data  = SAA7134_BOARD_BEHOLD_609FM_MK5,
6785         },{
6786                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6787                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6788                 .subvendor    = 0x5ace,
6789                 .subdevice    = 0x6092,
6790                 .driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK3,
6791         },{
6792                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6793                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6794                 .subvendor    = 0x5ace,
6795                 .subdevice    = 0x6093,
6796                 .driver_data  = SAA7134_BOARD_BEHOLD_609RDS_MK5,
6797         },{
6798                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6799                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6800                 .subvendor    = 0x5ace,
6801                 .subdevice    = 0x6190,
6802                 .driver_data  = SAA7134_BOARD_BEHOLD_M6,
6803         },{
6804                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6805                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6806                 .subvendor    = 0x5ace,
6807                 .subdevice    = 0x6193,
6808                 .driver_data  = SAA7134_BOARD_BEHOLD_M6_EXTRA,
6809         }, {
6810                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6811                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6812                 .subvendor    = 0x5ace,
6813                 .subdevice    = 0x6191,
6814                 .driver_data  = SAA7134_BOARD_BEHOLD_M63,
6815         },{
6816                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6817                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6818                 .subvendor    = 0x4e42,
6819                 .subdevice    = 0x3502,
6820                 .driver_data  = SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS,
6821         }, {
6822                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6823                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6824                 .subvendor    = 0x1822, /*Twinhan Technology Co. Ltd*/
6825                 .subdevice    = 0x0022,
6826                 .driver_data  = SAA7134_BOARD_TWINHAN_DTV_DVB_3056,
6827         }, {
6828                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6829                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6830                 .subvendor    = 0x16be,
6831                 .subdevice    = 0x0010, /* Medion version CTX953_V.1.4.3 */
6832                 .driver_data  = SAA7134_BOARD_CREATIX_CTX953,
6833         }, {
6834                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6835                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6836                 .subvendor    = 0x1462, /* MSI */
6837                 .subdevice    = 0x8625, /* TV@nywhere A/D v1.1 */
6838                 .driver_data  = SAA7134_BOARD_MSI_TVANYWHERE_AD11,
6839         },{
6840                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6841                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6842                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6843                 .subdevice    = 0xf436,
6844                 .driver_data  = SAA7134_BOARD_AVERMEDIA_CARDBUS_506,
6845         }, {
6846                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6847                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6848                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6849                 .subdevice    = 0xf936,
6850                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A16D,
6851         }, {
6852                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6853                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6854                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6855                 .subdevice    = 0xa836,
6856                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M115,
6857         }, {
6858                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6859                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6860                 .subvendor    = 0x185b,
6861                 .subdevice    = 0xc900,
6862                 .driver_data  = SAA7134_BOARD_VIDEOMATE_T750,
6863         }, {
6864                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6865                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133, /* SAA7135HL */
6866                 .subvendor    = 0x1421,
6867                 .subdevice    = 0x0380,
6868                 .driver_data  = SAA7134_BOARD_ADS_INSTANT_HDTV_PCI,
6869         }, {
6870                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6871                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6872                 .subvendor    = 0x5169,
6873                 .subdevice    = 0x1502,
6874                 .driver_data  = SAA7134_BOARD_FLYTVPLATINUM_MINI,
6875         }, {
6876                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6877                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6878                 .subvendor    = 0x5ace,
6879                 .subdevice    = 0x6290,
6880                 .driver_data  = SAA7134_BOARD_BEHOLD_H6,
6881         }, {
6882                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6883                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6884                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6885                 .subdevice    = 0xf636,
6886                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
6887         }, {
6888                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6889                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6890                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6891                 .subdevice    = 0xf736,
6892                 .driver_data  = SAA7134_BOARD_AVERMEDIA_M103,
6893         }, {
6894                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6895                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6896                 .subvendor    = 0x1043,
6897                 .subdevice    = 0x4878, /* REV:1.02G */
6898                 .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
6899         }, {
6900                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6901                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6902                 .subvendor    = 0x1043,
6903                 .subdevice    = 0x48cd,
6904                 .driver_data  = SAA7134_BOARD_ASUSTeK_PS3_100,
6905         }, {
6906                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6907                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6908                 .subvendor    = 0x17de,
6909                 .subdevice    = 0x7128,
6910                 .driver_data  = SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG,
6911         }, {
6912                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6913                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6914                 .subvendor    = 0x17de,
6915                 .subdevice    = 0xb136,
6916                 .driver_data  = SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG,
6917         }, {
6918                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6919                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6920                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
6921                 .subdevice    = 0xf31d,
6922                 .driver_data  = SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS,
6923         }, {
6924                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6925                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6926                 .subvendor    = 0x185b,
6927                 .subdevice    = 0xc900,
6928                 .driver_data  = SAA7134_BOARD_VIDEOMATE_S350,
6929         }, {
6930                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6931                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6932                 .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
6933                 .subdevice    = 0x7595,
6934                 .driver_data  = SAA7134_BOARD_BEHOLD_X7,
6935         }, {
6936                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6937                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6938                 .subvendor    = 0x19d1, /* RoverMedia */
6939                 .subdevice    = 0x0138, /* LifeView FlyTV Prime30 OEM */
6940                 .driver_data  = SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM,
6941         }, {
6942                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6943                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6944                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
6945                 .subdevice    = 0x2004,
6946                 .driver_data  = SAA7134_BOARD_ZOLID_HYBRID_PCI,
6947         }, {
6948                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6949                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6950                 .subvendor    = 0x1043,
6951                 .subdevice    = 0x4847,
6952                 .driver_data  = SAA7134_BOARD_ASUS_EUROPA_HYBRID,
6953         }, {
6954                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6955                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6956                 .subvendor    = 0x107d,
6957                 .subdevice    = 0x6655,
6958                 .driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S,
6959         }, {
6960                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6961                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6962                 .subvendor    = 0x13c2,
6963                 .subdevice    = 0x2804,
6964                 .driver_data  = SAA7134_BOARD_TECHNOTREND_BUDGET_T3000,
6965         }, {
6966                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6967                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6968                 .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
6969                 .subdevice    = 0x7190,
6970                 .driver_data  = SAA7134_BOARD_BEHOLD_H7,
6971         }, {
6972                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6973                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6974                 .subvendor    = 0x5ace, /* Beholder Intl. Ltd. */
6975                 .subdevice    = 0x7090,
6976                 .driver_data  = SAA7134_BOARD_BEHOLD_A7,
6977         }, {
6978                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6979                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
6980                 .subvendor    = 0x185b,
6981                 .subdevice    = 0xc900,
6982                 .driver_data  = SAA7134_BOARD_VIDEOMATE_M1F,
6983         }, {
6984                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6985                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
6986                 .subvendor    = 0x5ace,
6987                 .subdevice    = 0x5030,
6988                 .driver_data  = SAA7134_BOARD_BEHOLD_503FM,
6989         }, {
6990                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6991                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
6992                 .subvendor    = 0x5ace,
6993                 .subdevice    = 0x5010,
6994                 .driver_data  = SAA7134_BOARD_BEHOLD_501,
6995         }, {
6996                 .vendor       = PCI_VENDOR_ID_PHILIPS,
6997                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
6998                 .subvendor    = 0x17de,
6999                 .subdevice    = 0xd136,
7000                 .driver_data  = SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2,
7001         }, {
7002                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7003                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7004                 .subvendor    = 0x6000,
7005                 .subdevice    = 0x0811,
7006                 .driver_data  = SAA7134_BOARD_SENSORAY811_911,
7007         }, {
7008                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7009                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7010                 .subvendor    = 0x6000,
7011                 .subdevice    = 0x0911,
7012                 .driver_data  = SAA7134_BOARD_SENSORAY811_911,
7013         }, {
7014                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7015                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7016                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7017                 .subdevice    = 0x2055, /* AverTV Satellite Hybrid+FM A706 */
7018                 .driver_data  = SAA7134_BOARD_AVERMEDIA_A706,
7019         }, {
7020                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7021                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7022                 .subvendor    = 0x1905, /* WIS */
7023                 .subdevice    = 0x7007,
7024                 .driver_data  = SAA7134_BOARD_WIS_VOYAGER,
7025         }, {
7026                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7027                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7028                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
7029                 .subdevice    = 0xa10a,
7030                 .driver_data  = SAA7134_BOARD_AVERMEDIA_505,
7031         }, {
7032                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7033                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7034                 .subvendor    = 0x107d,
7035                 .subdevice    = 0x6f3a,
7036                 .driver_data  = SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM,
7037         }, {
7038                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7039                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7040                 .subvendor    = 0x1779, /* V One Multimedia PTE Ltd */
7041                 .subdevice    = 0x13cf,
7042                 .driver_data  = SAA7134_BOARD_SNAZIO_TVPVR_PRO,
7043         }, {
7044                 /* --- boards without eeprom + subsystem ID --- */
7045                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7046                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7047                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
7048                 .subdevice    = 0,
7049                 .driver_data  = SAA7134_BOARD_NOAUTO,
7050         },{
7051                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7052                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7053                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
7054                 .subdevice    = 0,
7055                 .driver_data  = SAA7134_BOARD_NOAUTO,
7056         },{
7057                 /* --- default catch --- */
7058                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7059                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
7060                 .subvendor    = PCI_ANY_ID,
7061                 .subdevice    = PCI_ANY_ID,
7062                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7063         },{
7064                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7065                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
7066                 .subvendor    = PCI_ANY_ID,
7067                 .subdevice    = PCI_ANY_ID,
7068                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7069         },{
7070                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7071                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
7072                 .subvendor    = PCI_ANY_ID,
7073                 .subdevice    = PCI_ANY_ID,
7074                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7075         },{
7076                 .vendor       = PCI_VENDOR_ID_PHILIPS,
7077                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
7078                 .subvendor    = PCI_ANY_ID,
7079                 .subdevice    = PCI_ANY_ID,
7080                 .driver_data  = SAA7134_BOARD_UNKNOWN,
7081         },{
7082                 /* --- end of list --- */
7083         }
7084 };
7085 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
7086
7087 /* ----------------------------------------------------------- */
7088 /* flyvideo tweaks                                             */
7089
7090
7091 static void board_flyvideo(struct saa7134_dev *dev)
7092 {
7093         pr_warn("%s: there are different flyvideo cards with different tuners\n"
7094                 "%s: out there, you might have to use the tuner=<nr> insmod\n"
7095                 "%s: option to override the default value.\n",
7096                 dev->name, dev->name, dev->name);
7097 }
7098
7099 static int saa7134_xc2028_callback(struct saa7134_dev *dev,
7100                                    int command, int arg)
7101 {
7102         switch (command) {
7103         case XC2028_TUNER_RESET:
7104                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00000000);
7105                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7106                 switch (dev->board) {
7107                 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7108                 case SAA7134_BOARD_AVERMEDIA_M103:
7109                         saa7134_set_gpio(dev, 23, 0);
7110                         msleep(10);
7111                         saa7134_set_gpio(dev, 23, 1);
7112                 break;
7113                 case SAA7134_BOARD_AVERMEDIA_A16D:
7114                         saa7134_set_gpio(dev, 21, 0);
7115                         msleep(10);
7116                         saa7134_set_gpio(dev, 21, 1);
7117                 break;
7118                 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7119                         saa7134_set_gpio(dev, 18, 0);
7120                         msleep(10);
7121                         saa7134_set_gpio(dev, 18, 1);
7122                 break;
7123                 case SAA7134_BOARD_VIDEOMATE_T750:
7124                         saa7134_set_gpio(dev, 20, 0);
7125                         msleep(10);
7126                         saa7134_set_gpio(dev, 20, 1);
7127                 break;
7128                 }
7129                 return 0;
7130         }
7131         return -EINVAL;
7132 }
7133
7134 static int saa7134_xc5000_callback(struct saa7134_dev *dev,
7135                                    int command, int arg)
7136 {
7137         switch (dev->board) {
7138         case SAA7134_BOARD_BEHOLD_X7:
7139         case SAA7134_BOARD_BEHOLD_H7:
7140         case SAA7134_BOARD_BEHOLD_A7:
7141                 if (command == XC5000_TUNER_RESET) {
7142                 /* Down and UP pheripherial RESET pin for reset all chips */
7143                         saa_writeb(SAA7134_SPECIAL_MODE, 0x00);
7144                         msleep(10);
7145                         saa_writeb(SAA7134_SPECIAL_MODE, 0x01);
7146                         msleep(10);
7147                 }
7148                 break;
7149         default:
7150                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x06e20000, 0x06e20000);
7151                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x06a20000, 0x06a20000);
7152                 saa_andorl(SAA7133_ANALOG_IO_SELECT >> 2, 0x02, 0x02);
7153                 saa_andorl(SAA7134_ANALOG_IN_CTRL1 >> 2, 0x81, 0x81);
7154                 saa_andorl(SAA7134_AUDIO_CLOCK0 >> 2, 0x03187de7, 0x03187de7);
7155                 saa_andorl(SAA7134_AUDIO_PLL_CTRL >> 2, 0x03, 0x03);
7156                 saa_andorl(SAA7134_AUDIO_CLOCKS_PER_FIELD0 >> 2,
7157                            0x0001e000, 0x0001e000);
7158                 break;
7159         }
7160         return 0;
7161 }
7162
7163 static int saa7134_tda8290_827x_callback(struct saa7134_dev *dev,
7164                                          int command, int arg)
7165 {
7166         u8 sync_control;
7167
7168         switch (command) {
7169         case 0: /* switch LNA gain through GPIO 22*/
7170                 saa7134_set_gpio(dev, 22, arg) ;
7171                 break;
7172         case 1: /* vsync output at GPIO22. 50 / 60Hz */
7173                 saa_andorb(SAA7134_VIDEO_PORT_CTRL3, 0x80, 0x80);
7174                 saa_andorb(SAA7134_VIDEO_PORT_CTRL6, 0x0f, 0x03);
7175                 if (arg == 1)
7176                         sync_control = 11;
7177                 else
7178                         sync_control = 17;
7179                 saa_writeb(SAA7134_VGATE_START, sync_control);
7180                 saa_writeb(SAA7134_VGATE_STOP, sync_control + 1);
7181                 saa_andorb(SAA7134_MISC_VGATE_MSB, 0x03, 0x00);
7182                 break;
7183         default:
7184                 return -EINVAL;
7185         }
7186
7187         return 0;
7188 }
7189
7190 static inline int saa7134_tda18271_hvr11x0_toggle_agc(struct saa7134_dev *dev,
7191                                                       enum tda18271_mode mode)
7192 {
7193         /* toggle AGC switch through GPIO 26 */
7194         switch (mode) {
7195         case TDA18271_ANALOG:
7196                 saa7134_set_gpio(dev, 26, 0);
7197                 break;
7198         case TDA18271_DIGITAL:
7199                 saa7134_set_gpio(dev, 26, 1);
7200                 break;
7201         default:
7202                 return -EINVAL;
7203         }
7204         return 0;
7205 }
7206
7207 static inline int saa7134_kworld_sbtvd_toggle_agc(struct saa7134_dev *dev,
7208                                                   enum tda18271_mode mode)
7209 {
7210         /* toggle AGC switch through GPIO 27 */
7211         switch (mode) {
7212         case TDA18271_ANALOG:
7213                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
7214                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
7215                 msleep(20);
7216                 break;
7217         case TDA18271_DIGITAL:
7218                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x14000);
7219                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x14000);
7220                 msleep(20);
7221                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x54000);
7222                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x54000);
7223                 msleep(30);
7224                 break;
7225         default:
7226                 return -EINVAL;
7227         }
7228         return 0;
7229 }
7230
7231 static int saa7134_kworld_pc150u_toggle_agc(struct saa7134_dev *dev,
7232                                             enum tda18271_mode mode)
7233 {
7234         switch (mode) {
7235         case TDA18271_ANALOG:
7236                 saa7134_set_gpio(dev, 18, 0);
7237                 break;
7238         case TDA18271_DIGITAL:
7239                 saa7134_set_gpio(dev, 18, 1);
7240                 msleep(30);
7241                 break;
7242         default:
7243                 return -EINVAL;
7244         }
7245         return 0;
7246 }
7247
7248 static int saa7134_tda8290_18271_callback(struct saa7134_dev *dev,
7249                                           int command, int arg)
7250 {
7251         int ret = 0;
7252
7253         switch (command) {
7254         case TDA18271_CALLBACK_CMD_AGC_ENABLE: /* 0 */
7255                 switch (dev->board) {
7256                 case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7257                 case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7258                 case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7259                         ret = saa7134_tda18271_hvr11x0_toggle_agc(dev, arg);
7260                         break;
7261                 case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7262                         ret = saa7134_kworld_sbtvd_toggle_agc(dev, arg);
7263                         break;
7264                 case SAA7134_BOARD_KWORLD_PC150U:
7265                         ret = saa7134_kworld_pc150u_toggle_agc(dev, arg);
7266                         break;
7267                 default:
7268                         break;
7269                 }
7270                 break;
7271         default:
7272                 ret = -EINVAL;
7273                 break;
7274         }
7275         return ret;
7276 }
7277
7278 static int saa7134_tda8290_callback(struct saa7134_dev *dev,
7279                                     int command, int arg)
7280 {
7281         int ret;
7282
7283         switch (dev->board) {
7284         case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7285         case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7286         case SAA7134_BOARD_AVERMEDIA_M733A:
7287         case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
7288         case SAA7134_BOARD_KWORLD_PC150U:
7289         case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7290                 /* tda8290 + tda18271 */
7291                 ret = saa7134_tda8290_18271_callback(dev, command, arg);
7292                 break;
7293         default:
7294                 /* tda8290 + tda827x */
7295                 ret = saa7134_tda8290_827x_callback(dev, command, arg);
7296                 break;
7297         }
7298         return ret;
7299 }
7300
7301 int saa7134_tuner_callback(void *priv, int component, int command, int arg)
7302 {
7303         struct saa7134_dev *dev = priv;
7304
7305         if (dev != NULL) {
7306                 switch (dev->tuner_type) {
7307                 case TUNER_PHILIPS_TDA8290:
7308                         return saa7134_tda8290_callback(dev, command, arg);
7309                 case TUNER_XC2028:
7310                         return saa7134_xc2028_callback(dev, command, arg);
7311                 case TUNER_XC5000:
7312                         return saa7134_xc5000_callback(dev, command, arg);
7313                 }
7314         } else {
7315                 pr_err("saa7134: Error - device struct undefined.\n");
7316                 return -EINVAL;
7317         }
7318         return -EINVAL;
7319 }
7320 EXPORT_SYMBOL(saa7134_tuner_callback);
7321
7322 /* ----------------------------------------------------------- */
7323
7324 static void hauppauge_eeprom(struct saa7134_dev *dev, u8 *eeprom_data)
7325 {
7326         struct tveeprom tv;
7327
7328         tveeprom_hauppauge_analog(&tv, eeprom_data);
7329
7330         /* Make sure we support the board model */
7331         switch (tv.model) {
7332         case 67019: /* WinTV-HVR1110 (Retail, IR Blaster, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7333         case 67109: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7334         case 67201: /* WinTV-HVR1150 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7335         case 67301: /* WinTV-HVR1000 (Retail, IR Receive, analog, no FM, SVid/Comp, 3.5mm audio in) */
7336         case 67209: /* WinTV-HVR1110 (Retail, IR Receive, hybrid, FM, SVid/Comp, 3.5mm audio in) */
7337         case 67559: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7338         case 67569: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM) */
7339         case 67579: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM) */
7340         case 67589: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7341         case 67599: /* WinTV-HVR1110 (OEM, no IR, hybrid, no FM, SVid/Comp, RCA aud) */
7342         case 67651: /* WinTV-HVR1150 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7343         case 67659: /* WinTV-HVR1110 (OEM, no IR, hybrid, FM, SVid/Comp, RCA aud) */
7344                 break;
7345         default:
7346                 pr_warn("%s: warning: unknown hauppauge model #%d\n",
7347                         dev->name, tv.model);
7348                 break;
7349         }
7350
7351         pr_info("%s: hauppauge eeprom: model=%d\n",
7352                dev->name, tv.model);
7353 }
7354
7355 /* ----------------------------------------------------------- */
7356
7357 int saa7134_board_init1(struct saa7134_dev *dev)
7358 {
7359         /* Always print gpio, often manufacturers encode tuner type and other info. */
7360         saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
7361         dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
7362         pr_info("%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
7363
7364         switch (dev->board) {
7365         case SAA7134_BOARD_FLYVIDEO2000:
7366         case SAA7134_BOARD_FLYVIDEO3000:
7367         case SAA7134_BOARD_FLYVIDEO3000_NTSC:
7368                 dev->has_remote = SAA7134_REMOTE_GPIO;
7369                 board_flyvideo(dev);
7370                 break;
7371         case SAA7134_BOARD_FLYTVPLATINUM_MINI2:
7372         case SAA7134_BOARD_FLYTVPLATINUM_FM:
7373         case SAA7134_BOARD_CINERGY400:
7374         case SAA7134_BOARD_CINERGY600:
7375         case SAA7134_BOARD_CINERGY600_MK3:
7376         case SAA7134_BOARD_ECS_TVP3XP:
7377         case SAA7134_BOARD_ECS_TVP3XP_4CB5:
7378         case SAA7134_BOARD_ECS_TVP3XP_4CB6:
7379         case SAA7134_BOARD_MD2819:
7380         case SAA7134_BOARD_KWORLD_VSTREAM_XPERT:
7381         case SAA7134_BOARD_KWORLD_XPERT:
7382         case SAA7134_BOARD_AVERMEDIA_STUDIO_305:
7383         case SAA7134_BOARD_AVERMEDIA_305:
7384         case SAA7134_BOARD_AVERMEDIA_STUDIO_505:
7385         case SAA7134_BOARD_AVERMEDIA_505:
7386         case SAA7134_BOARD_AVERMEDIA_STUDIO_307:
7387         case SAA7134_BOARD_AVERMEDIA_307:
7388         case SAA7134_BOARD_AVERMEDIA_STUDIO_507:
7389         case SAA7134_BOARD_AVERMEDIA_GO_007_FM:
7390         case SAA7134_BOARD_AVERMEDIA_777:
7391         case SAA7134_BOARD_AVERMEDIA_M135A:
7392 /*      case SAA7134_BOARD_SABRENT_SBTTVFM:  */ /* not finished yet */
7393         case SAA7134_BOARD_VIDEOMATE_TV_PVR:
7394         case SAA7134_BOARD_VIDEOMATE_GOLD_PLUS:
7395         case SAA7134_BOARD_VIDEOMATE_TV_GOLD_PLUSII:
7396         case SAA7134_BOARD_VIDEOMATE_M1F:
7397         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7398         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
7399         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
7400         case SAA7134_BOARD_MANLI_MTV001:
7401         case SAA7134_BOARD_MANLI_MTV002:
7402         case SAA7134_BOARD_BEHOLD_409FM:
7403         case SAA7134_BOARD_AVACSSMARTTV:
7404         case SAA7134_BOARD_GOTVIEW_7135:
7405         case SAA7134_BOARD_KWORLD_TERMINATOR:
7406         case SAA7134_BOARD_SEDNA_PC_TV_CARDBUS:
7407         case SAA7134_BOARD_FLYDVBT_LR301:
7408         case SAA7134_BOARD_ASUSTeK_PS3_100:
7409         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7410         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7411         case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
7412         case SAA7134_BOARD_FLYDVBTDUO:
7413         case SAA7134_BOARD_PROTEUS_2309:
7414         case SAA7134_BOARD_AVERMEDIA_A16AR:
7415         case SAA7134_BOARD_ENCORE_ENLTV:
7416         case SAA7134_BOARD_ENCORE_ENLTV_FM:
7417         case SAA7134_BOARD_ENCORE_ENLTV_FM53:
7418         case SAA7134_BOARD_ENCORE_ENLTV_FM3:
7419         case SAA7134_BOARD_10MOONSTVMASTER3:
7420         case SAA7134_BOARD_BEHOLD_401:
7421         case SAA7134_BOARD_BEHOLD_403:
7422         case SAA7134_BOARD_BEHOLD_403FM:
7423         case SAA7134_BOARD_BEHOLD_405:
7424         case SAA7134_BOARD_BEHOLD_405FM:
7425         case SAA7134_BOARD_BEHOLD_407:
7426         case SAA7134_BOARD_BEHOLD_407FM:
7427         case SAA7134_BOARD_BEHOLD_409:
7428         case SAA7134_BOARD_BEHOLD_505FM:
7429         case SAA7134_BOARD_BEHOLD_505RDS_MK5:
7430         case SAA7134_BOARD_BEHOLD_505RDS_MK3:
7431         case SAA7134_BOARD_BEHOLD_507_9FM:
7432         case SAA7134_BOARD_BEHOLD_507RDS_MK3:
7433         case SAA7134_BOARD_BEHOLD_507RDS_MK5:
7434         case SAA7134_BOARD_GENIUS_TVGO_A11MCE:
7435         case SAA7134_BOARD_REAL_ANGEL_220:
7436         case SAA7134_BOARD_KWORLD_PLUS_TV_ANALOG:
7437         case SAA7134_BOARD_AVERMEDIA_GO_007_FM_PLUS:
7438         case SAA7134_BOARD_ROVERMEDIA_LINK_PRO_FM:
7439         case SAA7134_BOARD_LEADTEK_WINFAST_DTV1000S:
7440         case SAA7134_BOARD_LEADTEK_WINFAST_TV2100_FM:
7441                 dev->has_remote = SAA7134_REMOTE_GPIO;
7442                 break;
7443         case SAA7134_BOARD_FLYDVBS_LR300:
7444                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x80);
7445                 saa_writeb(SAA7134_GPIO_GPSTATUS2, 0x40);
7446                 dev->has_remote = SAA7134_REMOTE_GPIO;
7447                 break;
7448         case SAA7134_BOARD_MD5044:
7449                 pr_warn("%s: seems there are two different versions of the MD5044\n"
7450                         "%s: (with the same ID) out there.  If sound doesn't work for\n"
7451                         "%s: you try the audio_clock_override=0x200000 insmod option.\n",
7452                         dev->name, dev->name, dev->name);
7453                 break;
7454         case SAA7134_BOARD_CINERGY400_CARDBUS:
7455                 /* power-up tuner chip */
7456                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7457                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000000);
7458                 break;
7459         case SAA7134_BOARD_PINNACLE_300I_DVBT_PAL:
7460                 /* this turns the remote control chip off to work around a bug in it */
7461                 saa_writeb(SAA7134_GPIO_GPMODE1, 0x80);
7462                 saa_writeb(SAA7134_GPIO_GPSTATUS1, 0x80);
7463                 break;
7464         case SAA7134_BOARD_MONSTERTV_MOBILE:
7465                 /* power-up tuner chip */
7466                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00040000, 0x00040000);
7467                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00040000, 0x00000004);
7468                 break;
7469         case SAA7134_BOARD_FLYDVBT_DUO_CARDBUS:
7470                 /* turn the fan on */
7471                 saa_writeb(SAA7134_GPIO_GPMODE3, 0x08);
7472                 saa_writeb(SAA7134_GPIO_GPSTATUS3, 0x06);
7473                 break;
7474         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7475         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7476                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x08000000, 0x08000000);
7477                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08000000, 0x00000000);
7478                 break;
7479         case SAA7134_BOARD_AVERMEDIA_CARDBUS:
7480         case SAA7134_BOARD_AVERMEDIA_M115:
7481                 /* power-down tuner chip */
7482                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0);
7483                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0);
7484                 msleep(10);
7485                 /* power-up tuner chip */
7486                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0xffffffff, 0xffffffff);
7487                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
7488                 msleep(10);
7489                 break;
7490         case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
7491                 /* power-down tuner chip */
7492                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7493                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0);
7494                 msleep(10);
7495                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x08400000, 0x08400000);
7496                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x08400000, 0x08400000);
7497                 msleep(10);
7498                 dev->has_remote = SAA7134_REMOTE_I2C;
7499                 break;
7500         case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7501                 saa7134_set_gpio(dev, 23, 0);
7502                 msleep(10);
7503                 saa7134_set_gpio(dev, 23, 1);
7504                 dev->has_remote = SAA7134_REMOTE_I2C;
7505                 break;
7506         case SAA7134_BOARD_AVERMEDIA_M103:
7507                 saa7134_set_gpio(dev, 23, 0);
7508                 msleep(10);
7509                 saa7134_set_gpio(dev, 23, 1);
7510                 break;
7511         case SAA7134_BOARD_AVERMEDIA_A16D:
7512                 saa7134_set_gpio(dev, 21, 0);
7513                 msleep(10);
7514                 saa7134_set_gpio(dev, 21, 1);
7515                 msleep(1);
7516                 dev->has_remote = SAA7134_REMOTE_GPIO;
7517                 break;
7518         case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
7519                 /* power-down tuner chip */
7520                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7521                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0);
7522                 msleep(10);
7523                 /* power-up tuner chip */
7524                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x000A8004, 0x000A8004);
7525                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x000A8004, 0x000A8004);
7526                 msleep(10);
7527                 /* remote via GPIO */
7528                 dev->has_remote = SAA7134_REMOTE_GPIO;
7529                 break;
7530         case SAA7134_BOARD_RTD_VFG7350:
7531
7532                 /*
7533                  * Make sure Production Test Register at offset 0x1D1 is cleared
7534                  * to take chip out of test mode.  Clearing bit 4 (TST_EN_AOUT)
7535                  * prevents pin 105 from remaining low; keeping pin 105 low
7536                  * continually resets the SAA6752 chip.
7537                  */
7538
7539                 saa_writeb (SAA7134_PRODUCTION_TEST_MODE, 0x00);
7540                 break;
7541         case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7542         case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7543                 dev->has_remote = SAA7134_REMOTE_GPIO;
7544                 /* GPIO 26 high for digital, low for analog */
7545                 saa7134_set_gpio(dev, 26, 0);
7546                 msleep(1);
7547
7548                 saa7134_set_gpio(dev, 22, 0);
7549                 msleep(10);
7550                 saa7134_set_gpio(dev, 22, 1);
7551                 break;
7552         /* i2c remotes */
7553         case SAA7134_BOARD_PINNACLE_PCTV_110i:
7554         case SAA7134_BOARD_PINNACLE_PCTV_310i:
7555         case SAA7134_BOARD_UPMOST_PURPLE_TV:
7556         case SAA7134_BOARD_MSI_TVATANYWHERE_PLUS:
7557         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7558         case SAA7134_BOARD_BEHOLD_607FM_MK3:
7559         case SAA7134_BOARD_BEHOLD_607FM_MK5:
7560         case SAA7134_BOARD_BEHOLD_609FM_MK3:
7561         case SAA7134_BOARD_BEHOLD_609FM_MK5:
7562         case SAA7134_BOARD_BEHOLD_607RDS_MK3:
7563         case SAA7134_BOARD_BEHOLD_607RDS_MK5:
7564         case SAA7134_BOARD_BEHOLD_609RDS_MK3:
7565         case SAA7134_BOARD_BEHOLD_609RDS_MK5:
7566         case SAA7134_BOARD_BEHOLD_M6:
7567         case SAA7134_BOARD_BEHOLD_M63:
7568         case SAA7134_BOARD_BEHOLD_M6_EXTRA:
7569         case SAA7134_BOARD_BEHOLD_H6:
7570         case SAA7134_BOARD_BEHOLD_X7:
7571         case SAA7134_BOARD_BEHOLD_H7:
7572         case SAA7134_BOARD_BEHOLD_A7:
7573         case SAA7134_BOARD_KWORLD_PC150U:
7574         case SAA7134_BOARD_SNAZIO_TVPVR_PRO:
7575                 dev->has_remote = SAA7134_REMOTE_I2C;
7576                 break;
7577         case SAA7134_BOARD_AVERMEDIA_A169_B:
7578                 pr_warn("%s: %s: dual saa713x broadcast decoders\n"
7579                         "%s: Sorry, none of the inputs to this chip are supported yet.\n"
7580                         "%s: Dual decoder functionality is disabled for now, use the other chip.\n",
7581                         dev->name, card(dev).name, dev->name, dev->name);
7582                 break;
7583         case SAA7134_BOARD_AVERMEDIA_M102:
7584                 /* enable tuner */
7585                dev->has_remote = SAA7134_REMOTE_GPIO;
7586                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x8c040007, 0x8c040007);
7587                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0c0007cd, 0x0c0007cd);
7588                 break;
7589         case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7590         case SAA7134_BOARD_AVERMEDIA_A700_PRO:
7591                 /* write windows gpio values */
7592                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x80040100, 0x80040100);
7593                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x80040100, 0x00040100);
7594                 break;
7595         case SAA7134_BOARD_AVERMEDIA_A706:
7596                 /* radio antenna select: tristate both as in Windows driver */
7597                 saa7134_set_gpio(dev, 12, 3);   /* TV antenna */
7598                 saa7134_set_gpio(dev, 13, 3);   /* FM antenna */
7599                 dev->has_remote = SAA7134_REMOTE_I2C;
7600                 /*
7601                  * Disable CE5039 DVB-S tuner now (SLEEP pin high) to prevent
7602                  * it from interfering with analog tuner detection
7603                  */
7604                 saa7134_set_gpio(dev, 23, 1);
7605                 break;
7606         case SAA7134_BOARD_VIDEOMATE_S350:
7607                 dev->has_remote = SAA7134_REMOTE_GPIO;
7608                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0000C000, 0x0000C000);
7609                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0000C000, 0x0000C000);
7610                 break;
7611         case SAA7134_BOARD_AVERMEDIA_M733A:
7612                 saa7134_set_gpio(dev, 1, 1);
7613                 msleep(10);
7614                 saa7134_set_gpio(dev, 1, 0);
7615                 msleep(10);
7616                 saa7134_set_gpio(dev, 1, 1);
7617                 dev->has_remote = SAA7134_REMOTE_GPIO;
7618                 break;
7619         case SAA7134_BOARD_MAGICPRO_PROHDTV_PRO2:
7620                 /* enable LGS-8G75 */
7621                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x0e050000, 0x0c050000);
7622                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0e050000, 0x0c050000);
7623                 break;
7624         case SAA7134_BOARD_VIDEOMATE_T750:
7625                 /* enable the analog tuner */
7626                 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2,   0x00008000, 0x00008000);
7627                 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7628                 break;
7629         }
7630         return 0;
7631 }
7632
7633 static void saa7134_tuner_setup(struct saa7134_dev *dev)
7634 {
7635         struct tuner_setup tun_setup;
7636         unsigned int mode_mask = T_RADIO | T_ANALOG_TV;
7637
7638         memset(&tun_setup, 0, sizeof(tun_setup));
7639         tun_setup.tuner_callback = saa7134_tuner_callback;
7640
7641         if (saa7134_boards[dev->board].radio_type != UNSET) {
7642                 tun_setup.type = saa7134_boards[dev->board].radio_type;
7643                 tun_setup.addr = saa7134_boards[dev->board].radio_addr;
7644
7645                 tun_setup.mode_mask = T_RADIO;
7646
7647                 saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7648                 mode_mask &= ~T_RADIO;
7649         }
7650
7651         if ((dev->tuner_type != TUNER_ABSENT) && (dev->tuner_type != UNSET)) {
7652                 tun_setup.type = dev->tuner_type;
7653                 tun_setup.addr = dev->tuner_addr;
7654                 tun_setup.config = &saa7134_boards[dev->board].tda829x_conf;
7655                 tun_setup.tuner_callback = saa7134_tuner_callback;
7656
7657                 tun_setup.mode_mask = mode_mask;
7658
7659                 saa_call_all(dev, tuner, s_type_addr, &tun_setup);
7660         }
7661
7662         if (dev->tda9887_conf) {
7663                 struct v4l2_priv_tun_config tda9887_cfg;
7664
7665                 tda9887_cfg.tuner = TUNER_TDA9887;
7666                 tda9887_cfg.priv = &dev->tda9887_conf;
7667
7668                 saa_call_all(dev, tuner, s_config, &tda9887_cfg);
7669         }
7670
7671         if (dev->tuner_type == TUNER_XC2028) {
7672                 struct v4l2_priv_tun_config  xc2028_cfg;
7673                 struct xc2028_ctrl           ctl;
7674
7675                 memset(&xc2028_cfg, 0, sizeof(xc2028_cfg));
7676                 memset(&ctl, 0, sizeof(ctl));
7677
7678                 ctl.fname   = XC2028_DEFAULT_FIRMWARE;
7679                 ctl.max_len = 64;
7680
7681                 switch (dev->board) {
7682                 case SAA7134_BOARD_AVERMEDIA_A16D:
7683                 case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
7684                 case SAA7134_BOARD_AVERMEDIA_M103:
7685                 case SAA7134_BOARD_AVERMEDIA_A700_HYBRID:
7686                         ctl.demod = XC3028_FE_ZARLINK456;
7687                         break;
7688                 default:
7689                         ctl.demod = XC3028_FE_OREN538;
7690                         ctl.mts = 1;
7691                 }
7692
7693                 xc2028_cfg.tuner = TUNER_XC2028;
7694                 xc2028_cfg.priv  = &ctl;
7695
7696                 saa_call_all(dev, tuner, s_config, &xc2028_cfg);
7697         }
7698 }
7699
7700 /* stuff which needs working i2c */
7701 int saa7134_board_init2(struct saa7134_dev *dev)
7702 {
7703         unsigned char buf;
7704         int board;
7705
7706         /* Put here the code that enables the chips that are needed
7707            for analog mode and doesn't depend on the tuner attachment.
7708            It is also a good idea to get tuner type from eeprom, etc before
7709            initializing tuner, since we can avoid loading tuner driver
7710            on devices that has TUNER_ABSENT
7711          */
7712         switch (dev->board) {
7713         case SAA7134_BOARD_BMK_MPEX_NOTUNER:
7714         case SAA7134_BOARD_BMK_MPEX_TUNER:
7715                 /* Checks if the device has a tuner at 0x60 addr
7716                    If the device doesn't have a tuner, TUNER_ABSENT
7717                    will be used at tuner_type, avoiding loading tuner
7718                    without needing it
7719                  */
7720                 dev->i2c_client.addr = 0x60;
7721                 board = (i2c_master_recv(&dev->i2c_client, &buf, 0) < 0)
7722                         ? SAA7134_BOARD_BMK_MPEX_NOTUNER
7723                         : SAA7134_BOARD_BMK_MPEX_TUNER;
7724                 if (board == dev->board)
7725                         break;
7726                 dev->board = board;
7727                 pr_warn("%s: board type fixup: %s\n", dev->name,
7728                 saa7134_boards[dev->board].name);
7729                 dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7730
7731                 break;
7732         case SAA7134_BOARD_MD7134:
7733         {
7734                 u8 subaddr;
7735                 u8 data[3], data1[] = { 0x09, 0x9f, 0x86, 0x11};
7736                 int ret, tuner_t;
7737                 struct i2c_msg msg[] = {{.addr = 0x50, .flags = 0, .buf = &subaddr, .len = 1},
7738                                         {.addr = 0x50, .flags = I2C_M_RD, .buf = data, .len = 3}},
7739                                 msg1 = {.addr = 0x61, .flags = 0, .buf = data1, .len = sizeof(data1)};
7740
7741                 subaddr= 0x14;
7742                 tuner_t = 0;
7743
7744                 /* Retrieve device data from eeprom, checking for the
7745                    proper tuner_type.
7746                  */
7747                 ret = i2c_transfer(&dev->i2c_adap, msg, 2);
7748                 if (ret != 2) {
7749                         pr_err("EEPROM read failure\n");
7750                 } else if ((data[0] != 0) && (data[0] != 0xff)) {
7751                         /* old config structure */
7752                         subaddr = data[0] + 2;
7753                         msg[1].len = 2;
7754                         i2c_transfer(&dev->i2c_adap, msg, 2);
7755                         tuner_t = (data[0] << 8) + data[1];
7756                         switch (tuner_t){
7757                         case 0x0103:
7758                                 dev->tuner_type = TUNER_PHILIPS_PAL;
7759                                 break;
7760                         case 0x010C:
7761                                 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7762                                 break;
7763                         default:
7764                                 pr_err("%s Can't determine tuner type %x from EEPROM\n",
7765                                        dev->name, tuner_t);
7766                         }
7767                 } else if ((data[1] != 0) && (data[1] != 0xff)) {
7768                         /* new config structure */
7769                         subaddr = data[1] + 1;
7770                         msg[1].len = 1;
7771                         i2c_transfer(&dev->i2c_adap, msg, 2);
7772                         subaddr = data[0] + 1;
7773                         msg[1].len = 2;
7774                         i2c_transfer(&dev->i2c_adap, msg, 2);
7775                         tuner_t = (data[1] << 8) + data[0];
7776                         switch (tuner_t) {
7777                         case 0x0005:
7778                                 dev->tuner_type = TUNER_PHILIPS_FM1216ME_MK3;
7779                                 break;
7780                         case 0x001d:
7781                                 dev->tuner_type = TUNER_PHILIPS_FMD1216ME_MK3;
7782                                 pr_info("%s Board has DVB-T\n",
7783                                        dev->name);
7784                                 break;
7785                         default:
7786                                 pr_err("%s Can't determine tuner type %x from EEPROM\n",
7787                                        dev->name, tuner_t);
7788                         }
7789                 } else {
7790                         pr_err("%s unexpected config structure\n", dev->name);
7791                 }
7792
7793                 pr_info("%s Tuner type is %d\n", dev->name, dev->tuner_type);
7794
7795                 /* The tuner TUNER_PHILIPS_FMD1216ME_MK3 after hardware    */
7796                 /* start has disabled IF and enabled DVB-T. When saa7134   */
7797                 /* scan I2C devices it will not detect IF tda9887 and can`t*/
7798                 /* watch TV without software reboot. To solve this problem */
7799                 /* switch the tuner to analog TV mode manually.            */
7800                 if (dev->tuner_type == TUNER_PHILIPS_FMD1216ME_MK3) {
7801                         if (i2c_transfer(&dev->i2c_adap, &msg1, 1) != 1)
7802                                 printk(KERN_WARNING "%s: Unable to enable IF of the tuner.\n", dev->name);
7803                 }
7804                 break;
7805         }
7806         case SAA7134_BOARD_PHILIPS_EUROPA:
7807                 if (dev->autodetected && (dev->eedata[0x41] == 0x1c)) {
7808                         /* Reconfigure board as Snake reference design */
7809                         dev->board = SAA7134_BOARD_PHILIPS_SNAKE;
7810                         dev->tuner_type = saa7134_boards[dev->board].tuner_type;
7811                         pr_info("%s: Reconfigured board as %s\n",
7812                                 dev->name, saa7134_boards[dev->board].name);
7813                         break;
7814                 }
7815                 /* fall-through */
7816         case SAA7134_BOARD_VIDEOMATE_DVBT_300:
7817         case SAA7134_BOARD_ASUS_EUROPA2_HYBRID:
7818         case SAA7134_BOARD_ASUS_EUROPA_HYBRID:
7819         case SAA7134_BOARD_TECHNOTREND_BUDGET_T3000:
7820         {
7821
7822                 /* The Philips EUROPA based hybrid boards have the tuner
7823                    connected through the channel decoder. We have to make it
7824                    transparent to find it
7825                  */
7826                 u8 data[] = { 0x07, 0x02};
7827                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7828                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7829
7830                 break;
7831         }
7832         case SAA7134_BOARD_PHILIPS_TIGER:
7833         case SAA7134_BOARD_PHILIPS_TIGER_S:
7834         {
7835                 u8 data[] = { 0x3c, 0x33, 0x60};
7836                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7837                 if (dev->autodetected && (dev->eedata[0x49] == 0x50)) {
7838                         dev->board = SAA7134_BOARD_PHILIPS_TIGER_S;
7839                         pr_info("%s: Reconfigured board as %s\n",
7840                                 dev->name, saa7134_boards[dev->board].name);
7841                 }
7842                 if (dev->board == SAA7134_BOARD_PHILIPS_TIGER_S) {
7843                         dev->tuner_type = TUNER_PHILIPS_TDA8290;
7844
7845                         data[2] = 0x68;
7846                         i2c_transfer(&dev->i2c_adap, &msg, 1);
7847                         break;
7848                 }
7849                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7850                 break;
7851         }
7852         case SAA7134_BOARD_ASUSTeK_TVFM7135:
7853         /* The card below is detected as card=53, but is different */
7854                if (dev->autodetected && (dev->eedata[0x27] == 0x03)) {
7855                         dev->board = SAA7134_BOARD_ASUSTeK_P7131_ANALOG;
7856                         pr_info("%s: P7131 analog only, using entry of %s\n",
7857                                 dev->name, saa7134_boards[dev->board].name);
7858
7859                         /*
7860                          * IR init has already happened for other cards, so
7861                          * we have to catch up.
7862                          */
7863                         dev->has_remote = SAA7134_REMOTE_GPIO;
7864                         saa7134_input_init1(dev);
7865                }
7866                break;
7867         case SAA7134_BOARD_HAUPPAUGE_HVR1150:
7868         case SAA7134_BOARD_HAUPPAUGE_HVR1120:
7869                 hauppauge_eeprom(dev, dev->eedata+0x80);
7870                 break;
7871         case SAA7134_BOARD_HAUPPAUGE_HVR1110:
7872                 hauppauge_eeprom(dev, dev->eedata+0x80);
7873                 /* fall-through */
7874         case SAA7134_BOARD_PINNACLE_PCTV_310i:
7875         case SAA7134_BOARD_KWORLD_DVBT_210:
7876         case SAA7134_BOARD_TEVION_DVBT_220RF:
7877         case SAA7134_BOARD_ASUSTeK_TIGER:
7878         case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
7879         case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
7880         case SAA7134_BOARD_MEDION_MD8800_QUADRO:
7881         case SAA7134_BOARD_AVERMEDIA_SUPER_007:
7882         case SAA7134_BOARD_TWINHAN_DTV_DVB_3056:
7883         case SAA7134_BOARD_CREATIX_CTX953:
7884         {
7885                 /* this is a hybrid board, initialize to analog mode
7886                  * and configure firmware eeprom address
7887                  */
7888                 u8 data[] = { 0x3c, 0x33, 0x60};
7889                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7890                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7891                 break;
7892         }
7893         case SAA7134_BOARD_ASUSTeK_TIGER_3IN1:
7894         {
7895                 u8 data[] = { 0x3c, 0x33, 0x60};
7896                 struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
7897                                                         .len = sizeof(data)};
7898                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7899                 break;
7900         }
7901         case SAA7134_BOARD_ASUSTeK_PS3_100:
7902         {
7903                 u8 data[] = { 0x3c, 0x33, 0x60};
7904                 struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
7905                                                        .len = sizeof(data)};
7906                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7907                 break;
7908         }
7909         case SAA7134_BOARD_FLYDVB_TRIO:
7910         {
7911                 u8 temp = 0;
7912                 int rc;
7913                 u8 data[] = { 0x3c, 0x33, 0x62};
7914                 struct i2c_msg msg = {.addr=0x09, .flags=0, .buf=data, .len = sizeof(data)};
7915                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7916
7917                 /*
7918                  * send weak up message to pic16C505 chip
7919                  * @ LifeView FlyDVB Trio
7920                  */
7921                 msg.buf = &temp;
7922                 msg.addr = 0x0b;
7923                 msg.len = 1;
7924                 if (1 != i2c_transfer(&dev->i2c_adap, &msg, 1)) {
7925                         pr_warn("%s: send wake up byte to pic16C505(IR chip) failed\n",
7926                                 dev->name);
7927                 } else {
7928                         msg.flags = I2C_M_RD;
7929                         rc = i2c_transfer(&dev->i2c_adap, &msg, 1);
7930                         pr_info("%s: probe IR chip @ i2c 0x%02x: %s\n",
7931                                    dev->name, msg.addr,
7932                                    (1 == rc) ? "yes" : "no");
7933                         if (rc == 1)
7934                                 dev->has_remote = SAA7134_REMOTE_I2C;
7935                 }
7936                 break;
7937         }
7938         case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
7939         case SAA7134_BOARD_FLYDVBT_HYBRID_CARDBUS:
7940         {
7941                 /* initialize analog mode  */
7942                 u8 data[] = { 0x3c, 0x33, 0x6a};
7943                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7944                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7945                 break;
7946         }
7947         case SAA7134_BOARD_CINERGY_HT_PCMCIA:
7948         case SAA7134_BOARD_CINERGY_HT_PCI:
7949         {
7950                 /* initialize analog mode */
7951                 u8 data[] = { 0x3c, 0x33, 0x68};
7952                 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
7953                 i2c_transfer(&dev->i2c_adap, &msg, 1);
7954                 break;
7955         }
7956         case SAA7134_BOARD_VIDEOMATE_DVBT_200:
7957         case SAA7134_BOARD_VIDEOMATE_DVBT_200A:
7958                 /* The T200 and the T200A share the same pci id.  Consequently,
7959                  * we are going to query eeprom to try to find out which one we
7960                  * are actually looking at. */
7961
7962                 /* Don't do this if the board was specifically selected with an
7963                  * insmod option or if we have the default configuration T200*/
7964                 if (!dev->autodetected || (dev->eedata[0x41] == 0xd0))
7965                         break;
7966                 if (dev->eedata[0x41] == 0x02) {
7967                         /* Reconfigure board  as T200A */
7968                         dev->board = SAA7134_BOARD_VIDEOMATE_DVBT_200A;
7969                         dev->tuner_type   = saa7134_boards[dev->board].tuner_type;
7970                         dev->tda9887_conf = saa7134_boards[dev->board].tda9887_conf;
7971                         pr_info("%s: Reconfigured board as %s\n",
7972                                 dev->name, saa7134_boards[dev->board].name);
7973                 } else {
7974                         pr_warn("%s: Unexpected tuner type info: %x in eeprom\n",
7975                                 dev->name, dev->eedata[0x41]);
7976                         break;
7977                 }
7978                 break;
7979         case SAA7134_BOARD_ADS_INSTANT_HDTV_PCI:
7980         case SAA7134_BOARD_KWORLD_ATSC110:
7981         {
7982                 struct i2c_msg msg = { .addr = 0x0a, .flags = 0 };
7983                 int i;
7984                 static u8 buffer[][2] = {
7985                         { 0x10, 0x12 },
7986                         { 0x13, 0x04 },
7987                         { 0x16, 0x00 },
7988                         { 0x14, 0x04 },
7989                         { 0x17, 0x00 },
7990                 };
7991
7992                 for (i = 0; i < ARRAY_SIZE(buffer); i++) {
7993                         msg.buf = &buffer[i][0];
7994                         msg.len = ARRAY_SIZE(buffer[0]);
7995                         if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
7996                                 pr_warn("%s: Unable to enable tuner(%i).\n",
7997                                         dev->name, i);
7998                 }
7999                 break;
8000         }
8001         case SAA7134_BOARD_BEHOLD_H6:
8002         {
8003                 u8 data[] = { 0x09, 0x9f, 0x86, 0x11};
8004                 struct i2c_msg msg = {.addr = 0x61, .flags = 0, .buf = data,
8005                                                         .len = sizeof(data)};
8006
8007                 /* The tuner TUNER_PHILIPS_FMD1216MEX_MK3 after hardware    */
8008                 /* start has disabled IF and enabled DVB-T. When saa7134    */
8009                 /* scan I2C devices it not detect IF tda9887 and can`t      */
8010                 /* watch TV without software reboot. For solve this problem */
8011                 /* switch the tuner to analog TV mode manually.             */
8012                 if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
8013                         pr_warn("%s: Unable to enable IF of the tuner.\n",
8014                                 dev->name);
8015                 break;
8016         }
8017         case SAA7134_BOARD_KWORLD_PCI_SBTVD_FULLSEG:
8018                 saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0x4000);
8019                 saa_writel(SAA7134_GPIO_GPSTATUS0 >> 2, 0x4000);
8020
8021                 saa7134_set_gpio(dev, 27, 0);
8022                 break;
8023         } /* switch() */
8024
8025         /* initialize tuner (don't do this when resuming) */
8026         if (!dev->insuspend && TUNER_ABSENT != dev->tuner_type) {
8027                 int has_demod = (dev->tda9887_conf & TDA9887_PRESENT);
8028
8029                 /* Note: radio tuner address is always filled in,
8030                    so we do not need to probe for a radio tuner device. */
8031                 if (dev->radio_type != UNSET)
8032                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8033                                 &dev->i2c_adap, "tuner",
8034                                 dev->radio_addr, NULL);
8035                 if (has_demod)
8036                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8037                                 &dev->i2c_adap, "tuner",
8038                                 0, v4l2_i2c_tuner_addrs(ADDRS_DEMOD));
8039                 if (dev->tuner_addr == ADDR_UNSET) {
8040                         enum v4l2_i2c_tuner_type type =
8041                                 has_demod ? ADDRS_TV_WITH_DEMOD : ADDRS_TV;
8042
8043                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8044                                 &dev->i2c_adap, "tuner",
8045                                 0, v4l2_i2c_tuner_addrs(type));
8046                 } else {
8047                         v4l2_i2c_new_subdev(&dev->v4l2_dev,
8048                                 &dev->i2c_adap, "tuner",
8049                                 dev->tuner_addr, NULL);
8050                 }
8051         }
8052
8053         saa7134_tuner_setup(dev);
8054
8055         switch (dev->board) {
8056         case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
8057         case SAA7134_BOARD_AVERMEDIA_CARDBUS_501:
8058         {
8059                 struct v4l2_priv_tun_config tea5767_cfg;
8060                 struct tea5767_ctrl ctl;
8061
8062                 dev->i2c_client.addr = 0xC0;
8063                 /* set TEA5767(analog FM) defines */
8064                 memset(&ctl, 0, sizeof(ctl));
8065                 ctl.xtal_freq = TEA5767_HIGH_LO_13MHz;
8066                 tea5767_cfg.tuner = TUNER_TEA5767;
8067                 tea5767_cfg.priv  = &ctl;
8068                 saa_call_all(dev, tuner, s_config, &tea5767_cfg);
8069                 break;
8070         }
8071         } /* switch() */
8072
8073         return 0;
8074 }