VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / media / video / saa7134 / saa7134-cards.c
1 /*
2  * device driver for philips saa7134 based TV cards
3  * card-specific stuff.
4  *
5  * (c) 2001-04 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2 of the License, or
10  *  (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with this program; if not, write to the Free Software
19  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20  */
21
22 #include <linux/init.h>
23 #include <linux/module.h>
24
25 #include "saa7134-reg.h"
26 #include "saa7134.h"
27
28 /* commly used strings */
29 static char name_mute[]    = "mute";
30 static char name_radio[]   = "Radio";
31 static char name_tv[]      = "Television";
32 static char name_tv_mono[] = "TV (mono only)";
33 static char name_comp1[]   = "Composite1";
34 static char name_comp2[]   = "Composite2";
35 static char name_comp3[]   = "Composite3";
36 static char name_comp4[]   = "Composite4";
37 static char name_svideo[]  = "S-Video";
38
39 /* ------------------------------------------------------------------ */
40 /* board config info                                                  */
41
42 struct saa7134_board saa7134_boards[] = {
43         [SAA7134_BOARD_UNKNOWN] = {
44                 .name           = "UNKNOWN/GENERIC",
45                 .audio_clock    = 0x00187de7,
46                 .tuner_type     = TUNER_ABSENT,
47                 .inputs         = {{
48                         .name = "default",
49                         .vmux = 0,
50                         .amux = LINE1,
51                 }},
52         },
53         [SAA7134_BOARD_PROTEUS_PRO] = {
54                 /* /me */
55                 .name           = "Proteus Pro [philips reference design]",
56                 .audio_clock    = 0x00187de7,
57                 .tuner_type     = TUNER_PHILIPS_PAL,
58                 .inputs         = {{
59                         .name = name_comp1,
60                         .vmux = 0,
61                         .amux = LINE1,
62                 },{
63                         .name = name_tv,
64                         .vmux = 1,
65                         .amux = TV,
66                         .tv   = 1,
67                 },{
68                         .name = name_tv_mono,
69                         .vmux = 1,
70                         .amux = LINE2,
71                         .tv   = 1,
72                 }},
73                 .radio = {
74                         .name = name_radio,
75                         .amux = LINE2,
76                 },
77         },
78         [SAA7134_BOARD_FLYVIDEO3000] = {
79                 /* "Marco d'Itri" <md@Linux.IT> */
80                 .name           = "LifeView FlyVIDEO3000",
81                 .audio_clock    = 0x00200000,
82                 .tuner_type     = TUNER_PHILIPS_PAL,
83                 .gpiomask       = 0xe000,
84                 .inputs         = {{
85                         .name = name_tv,
86                         .vmux = 1,
87                         .amux = TV,
88                         .gpio = 0x8000,
89                         .tv   = 1,
90                 },{
91                         .name = name_tv_mono,
92                         .vmux = 1,
93                         .amux = LINE2,
94                         .gpio = 0x0000,
95                         .tv   = 1,
96                 },{
97                         .name = name_comp1,
98                         .vmux = 0,
99                         .amux = LINE2,
100                         .gpio = 0x4000,
101                 },{
102                         .name = name_comp2,
103                         .vmux = 3,
104                         .amux = LINE2,
105                         .gpio = 0x4000,
106                 },{
107                         .name = name_svideo,
108                         .vmux = 8,
109                         .amux = LINE2,
110                         .gpio = 0x4000,
111                 }},
112                 .radio = {
113                         .name = name_radio,
114                         .amux = LINE2,
115                         .gpio = 0x2000,
116                 },
117         },
118         [SAA7134_BOARD_FLYVIDEO2000] = {
119                 /* "TC Wan" <tcwan@cs.usm.my> */
120                 .name           = "LifeView FlyVIDEO2000",
121                 .audio_clock    = 0x00200000,
122                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
123                 .gpiomask       = 0xe000,
124                 .inputs         = {{
125                         .name = name_tv,
126                         .vmux = 1,
127                         .amux = LINE2,
128                         .gpio = 0x0000,
129                         .tv   = 1,
130                 },{
131                         .name = name_comp1,
132                         .vmux = 0,
133                         .amux = LINE2,
134                         .gpio = 0x4000,
135                 },{
136                         .name = name_comp2,
137                         .vmux = 3,
138                         .amux = LINE2,
139                         .gpio = 0x4000,
140                 },{
141                         .name = name_svideo,
142                         .vmux = 8,
143                         .amux = LINE2,
144                         .gpio = 0x4000,
145                 }},
146                 .radio = {
147                         .name = name_radio,
148                         .amux = LINE2,
149                         .gpio = 0x2000,
150                 },
151                 .mute = {
152                         .name = name_mute,
153                         .amux = LINE2,
154                         .gpio = 0x8000,
155                 },
156         },
157         [SAA7134_BOARD_EMPRESS] = {
158                 /* "Gert Vervoort" <gert.vervoort@philips.com> */
159                 .name           = "EMPRESS",
160                 .audio_clock    = 0x00187de7,
161                 .tuner_type     = TUNER_PHILIPS_PAL,
162                 .inputs         = {{
163                         .name = name_comp1,
164                         .vmux = 0,
165                         .amux = LINE1,
166                 },{
167                         .name = name_svideo,
168                         .vmux = 8,
169                         .amux = LINE1,
170                 },{
171                         .name = name_tv,
172                         .vmux = 1,
173                         .amux = LINE2,
174                         .tv   = 1,
175                 }},
176                 .radio = {
177                         .name = name_radio,
178                         .amux = LINE2,
179                 },
180                 .i2s_rate  = 48000,
181                 .has_ts    = 1,
182                 .video_out = CCIR656,
183         },
184         [SAA7134_BOARD_MONSTERTV] = {
185                /* "K.Ohta" <alpha292@bremen.or.jp> */
186                .name           = "SKNet Monster TV",
187                .audio_clock    = 0x00187de7,
188                .tuner_type     = TUNER_PHILIPS_NTSC_M,
189                .inputs         = {{
190                        .name = name_tv,
191                        .vmux = 1,
192                        .amux = TV,
193                        .tv   = 1,
194                },{
195                        .name = name_comp1,
196                        .vmux = 0,
197                        .amux = LINE1,
198                },{
199                        .name = name_svideo,
200                        .vmux = 8,
201                        .amux = LINE1,
202                }},
203                .radio = {
204                        .name = name_radio,
205                        .amux = LINE2,
206                },
207         },
208         [SAA7134_BOARD_MD9717] = {
209                 .name           = "Tevion MD 9717",
210                 .audio_clock    = 0x00200000,
211                 .tuner_type     = TUNER_PHILIPS_PAL,
212                 .inputs         = {{
213                         .name = name_tv,
214                         .vmux = 1,
215                         .amux = TV,
216                         .tv   = 1,
217                 },{
218                         /* workaround for problems with normal TV sound */
219                         .name = name_tv_mono,
220                         .vmux = 1,
221                         .amux = LINE2,
222                         .tv   = 1,
223                 },{
224                         .name = name_comp1,
225                         .vmux = 2,
226                         .amux = LINE1,
227                 },{
228                         .name = name_comp2,
229                         .vmux = 3,
230                         .amux = LINE1,
231                 },{
232                         .name = name_svideo,
233                         .vmux = 8,
234                         .amux = LINE1,
235                 }},
236                 .radio = {
237                         .name = name_radio,
238                         .amux = LINE2,
239                 },
240         },
241         [SAA7134_BOARD_TVSTATION_RDS] = {
242                 /* Typhoon TV Tuner RDS: Art.Nr. 50694 */
243                 .name           = "KNC One TV-Station RDS / Typhoon TV Tuner RDS",
244                 .audio_clock    = 0x00200000,
245                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
246                 .need_tda9887   = 1,
247                 .inputs         = {{
248                         .name = name_tv,
249                         .vmux = 1,
250                         .amux = TV,
251                         .tv   = 1,
252                 },{
253                         .name = name_tv_mono,
254                         .vmux = 1,
255                         .amux   = LINE2,
256                         .tv   = 1,
257                 },{
258
259                         .name = name_svideo,
260                         .vmux = 8,
261                         .amux = LINE1,
262                 },{
263                         .name = name_comp1,
264                         .vmux = 3,
265                         .amux = LINE1,
266                 },{
267
268                         .name = "CVid over SVid",
269                         .vmux = 0,
270                         .amux = LINE1,
271                 }},
272                 .radio = {
273                         .name = name_radio,
274                         .amux = LINE2,
275                 },
276         },
277         [SAA7134_BOARD_TVSTATION_DVR] = {
278                 .name           = "KNC One TV-Station DVR",
279                 .audio_clock    = 0x00200000,
280                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
281                 .need_tda9887   = 1,
282                 .gpiomask       = 0x820000,
283                 .inputs         = {{
284                         .name = name_tv,
285                         .vmux = 1,
286                         .amux = LINE2,
287                         .tv   = 1,
288                         .gpio = 0x20000,
289                 },{
290                         .name = name_svideo,
291                         .vmux = 8,
292                         .amux = LINE1,
293                         .gpio = 0x20000,
294                 },{
295                         .name = name_comp1,
296                         .vmux = 3,
297                         .amux = LINE1,
298                         .gpio = 0x20000,
299                 }},
300                 .radio          = {
301                         .name = name_radio,
302                         .amux = LINE2,
303                         .gpio = 0x20000,
304                 },
305                 .i2s_rate       = 48000,
306                 .has_ts         = 1,
307                 .video_out      = CCIR656,
308         },
309         [SAA7134_BOARD_CINERGY400] = {
310                 .name           = "Terratec Cinergy 400 TV",
311                 .audio_clock    = 0x00200000,
312                 .tuner_type     = TUNER_PHILIPS_PAL,
313                 .inputs         = {{
314                         .name = name_tv,
315                         .vmux = 1,
316                         .amux = TV,
317                         .tv   = 1,
318                 },{
319                         .name = name_comp1,
320                         .vmux = 4,
321                         .amux = LINE1,
322                 },{
323                         .name = name_svideo,
324                         .vmux = 8,
325                         .amux = LINE1,
326                 },{
327                         .name = name_comp2, // CVideo over SVideo Connector
328                         .vmux = 0,
329                         .amux = LINE1,
330                 }}
331         },
332         [SAA7134_BOARD_MD5044] = {
333                 .name           = "Medion 5044",
334                 .audio_clock    = 0x00187de7, // was: 0x00200000,
335                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
336                 .need_tda9887   = 1,
337                 .inputs         = {{
338                         .name = name_tv,
339                         .vmux = 1,
340                         .amux = TV,
341                         .tv   = 1,
342                 },{
343                         /* workaround for problems with normal TV sound */
344                         .name = name_tv_mono,
345                         .vmux = 1,
346                         .amux = LINE2,
347                         .tv   = 1,
348                 },{
349                         .name = name_comp1,
350                         .vmux = 0,
351                         .amux = LINE2,
352                 },{
353                         .name = name_comp2,
354                         .vmux = 3,
355                         .amux = LINE2,
356                 },{
357                         .name = name_svideo,
358                         .vmux = 8,
359                         .amux = LINE2,
360                 }},
361                 .radio = {
362                         .name = name_radio,
363                         .amux = LINE2,
364                 },
365         },
366         [SAA7134_BOARD_KWORLD] = {
367                 .name           = "Kworld/KuroutoShikou SAA7130-TVPCI",
368                 .audio_clock    = 0x00187de7,
369                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
370                 .inputs         = {{
371                         .name = name_svideo,
372                         .vmux = 8,
373                         .amux = LINE1,
374                 },{
375                         .name = name_comp1,
376                         .vmux = 3,
377                         .amux = LINE1,
378                 },{
379                         .name = name_tv,
380                         .vmux = 1,
381                         .amux = LINE2,
382                         .tv   = 1,
383                 }},
384         },
385         [SAA7134_BOARD_CINERGY600] = {
386                 .name           = "Terratec Cinergy 600 TV",
387                 .audio_clock    = 0x00200000,
388                 .tuner_type     = TUNER_PHILIPS_PAL,
389                 .inputs         = {{
390                         .name = name_tv,
391                         .vmux = 1,
392                         .amux = TV,
393                         .tv   = 1,
394                 },{
395                         .name = name_comp1,
396                         .vmux = 4,
397                         .amux = LINE1,
398                 },{
399                         .name = name_svideo,
400                         .vmux = 8,
401                         .amux = LINE1,
402                 },{
403                         .name = name_comp2, // CVideo over SVideo Connector
404                         .vmux = 0,
405                         .amux = LINE1,
406                 }},
407                 .radio = {
408                         .name = name_radio,
409                         .amux = LINE2,
410                },
411         },
412         [SAA7134_BOARD_MD7134] = {
413                 .name           = "Medion 7134",
414                 //.audio_clock    = 0x00200000,
415                 .audio_clock    = 0x00187de7,
416                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
417                 .need_tda9887   = 1,
418                 .inputs = {{
419                         .name   = name_tv,
420                         .vmux   = 1,
421                         .amux   = TV,
422                         .tv     = 1,
423                 },{
424                         .name   = name_comp1,
425                         .vmux   = 0,
426                         .amux   = LINE2,
427                 },{
428                         .name   = name_svideo,
429                         .vmux   = 8,
430                         .amux   = LINE2,
431                 }},
432                 .radio = {
433                         .name   = name_radio,
434                         .amux   = LINE2,
435                 },
436         },
437         [SAA7134_BOARD_TYPHOON_90031] = {
438                 /* aka Typhoon "TV+Radio", Art.Nr 90031 */
439                 /* Tom Zoerner <tomzo at users sourceforge net> */
440                 .name           = "Typhoon TV+Radio 90031",
441                 .audio_clock    = 0x00200000,
442                 .tuner_type     = TUNER_PHILIPS_PAL,
443                 .need_tda9887   = 1,
444                 .inputs         = {{
445                         .name   = name_tv,
446                         .vmux   = 1,
447                         .amux   = TV,
448                         .tv     = 1,
449                 },{
450                         .name   = name_comp1,
451                         .vmux   = 3,
452                         .amux   = LINE1,
453                 },{
454                         .name   = name_svideo,
455                         .vmux   = 8,
456                         .amux   = LINE1,
457                 }},
458                 .radio = {
459                         .name   = name_radio,
460                         .amux   = LINE2,
461                 },
462         },
463         [SAA7134_BOARD_ELSA] = {
464                 .name           = "ELSA EX-VISION 300TV",
465                 .audio_clock    = 0x00187de7,
466                 .tuner_type     = TUNER_HITACHI_NTSC,
467                 .inputs         = {{
468                         .name = name_svideo,
469                         .vmux = 8,
470                         .amux = LINE1,
471                 },{
472                         .name   = name_comp1,
473                         .vmux   = 0,
474                         .amux   = LINE1,
475                 },{
476                         .name = name_tv,
477                         .vmux = 4,
478                         .amux = LINE2,
479                         .tv   = 1,
480                 }},
481         },
482         [SAA7134_BOARD_ELSA_500TV] = {
483                 .name           = "ELSA EX-VISION 500TV",
484                 .audio_clock    = 0x00187de7,
485                 .tuner_type     = TUNER_HITACHI_NTSC,
486                 .inputs         = {{
487                         .name = name_svideo,
488                         .vmux = 7,
489                         .amux = LINE1,
490                 },{
491                         .name = name_tv,
492                         .vmux = 8,
493                         .amux = TV,
494                         .tv   = 1,
495                 },{
496                         .name = name_tv_mono,
497                         .vmux = 8,
498                         .amux = LINE2,
499                         .tv   = 1,
500                 }},
501         },
502         [SAA7134_BOARD_ASUSTeK_TVFM7134] = {
503                 .name           = "ASUS TV-FM 7134",
504                 .audio_clock    = 0x00187de7,
505                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
506                 .need_tda9887   = 1,
507                 .inputs         = {{
508                         .name = name_tv,
509                         .vmux = 1,
510                         .amux = TV,
511                         .tv   = 1,
512                 },{
513                         .name = name_comp1,
514                         .vmux = 4,
515                         .amux = LINE2,
516                 },{
517                         .name = name_svideo,
518                         .vmux = 6,
519                         .amux = LINE2,
520                 }},
521                 .radio = {
522                         .name = name_radio,
523                         .amux = LINE1,
524                 },
525         },
526         [SAA7134_BOARD_VA1000POWER] = {
527                 .name           = "AOPEN VA1000 POWER",
528                 .audio_clock    = 0x00187de7,
529                 .tuner_type     = TUNER_PHILIPS_NTSC,
530                 .inputs         = {{
531                         .name = name_svideo,
532                         .vmux = 8,
533                         .amux = LINE1,
534                 },{
535                         .name = name_comp1,
536                         .vmux = 3,
537                         .amux = LINE1,
538                 },{
539                         .name = name_tv,
540                         .vmux = 1,
541                         .amux = LINE2,
542                         .tv   = 1,
543                 }},
544         },
545         [SAA7134_BOARD_10MOONSTVMASTER] = {
546                 /* "lilicheng" <llc@linuxfans.org> */
547                 .name           = "10MOONS PCI TV CAPTURE CARD",
548                 .audio_clock    = 0x00200000,
549                 .tuner_type     = TUNER_LG_PAL_NEW_TAPC,
550                 .gpiomask       = 0xe000,
551                 .inputs         = {{
552                         .name = name_tv,
553                         .vmux = 1,
554                         .amux = LINE2,
555                         .gpio = 0x0000,
556                         .tv   = 1,
557                 },{
558                         .name = name_comp1,
559                         .vmux = 0,
560                         .amux = LINE2,
561                         .gpio = 0x4000,
562                 },{
563                         .name = name_comp2,
564                         .vmux = 3,
565                         .amux = LINE2,
566                         .gpio = 0x4000,
567                 },{
568                         .name = name_svideo,
569                         .vmux = 8,
570                         .amux = LINE2,
571                         .gpio = 0x4000,
572                 }},
573                 .radio = {
574                         .name = name_radio,
575                         .amux = LINE2,
576                         .gpio = 0x2000,
577                 },
578                 .mute = {
579                         .name = name_mute,
580                         .amux = LINE2,
581                         .gpio = 0x8000,
582                 },
583         },
584         [SAA7134_BOARD_BMK_MPEX_NOTUNER] = {
585                 /* "Andrew de Quincey" <adq@lidskialf.net> */
586                 .name           = "BMK MPEX No Tuner",
587                 .audio_clock    = 0x200000,
588                 .tuner_type     = TUNER_ABSENT,
589                 .inputs         = {{
590                         .name = name_comp1,
591                         .vmux = 4,
592                         .amux = LINE1,
593                 },{
594                         .name = name_comp2,
595                         .vmux = 3,
596                         .amux = LINE1,
597                 },{
598                         .name = name_comp3,
599                         .vmux = 0,
600                         .amux = LINE1,
601                 },{
602                         .name = name_comp4,
603                         .vmux = 1,
604                         .amux = LINE1,
605                 },{
606                         .name = name_svideo,
607                         .vmux = 8,
608                         .amux = LINE1,
609                 }},
610                 .i2s_rate  = 48000,
611                 .has_ts    = 1,
612                 .video_out = CCIR656,
613         },
614         [SAA7134_BOARD_VIDEOMATE_TV] = {
615                 .name           = "Compro VideoMate TV",
616                 .audio_clock    = 0x00187de7,
617                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
618                 .inputs         = {{
619                         .name = name_svideo,
620                         .vmux = 8,
621                         .amux = LINE1,
622                 },{
623                         .name = name_comp1,
624                         .vmux = 3,
625                         .amux = LINE1,
626                 },{
627                         .name = name_tv,
628                         .vmux = 1,
629                         .amux = LINE2,
630                         .tv   = 1,
631                 }},
632         },
633         [SAA7134_BOARD_CRONOS_PLUS] = {
634                 /* gpio pins:
635                    0  .. 3   BASE_ID
636                    4  .. 7   PROTECT_ID
637                    8  .. 11  USER_OUT
638                    12 .. 13  USER_IN
639                    14 .. 15  VIDIN_SEL */
640                 .name           = "Matrox CronosPlus",
641                 .tuner_type     = TUNER_ABSENT,
642                 .gpiomask       = 0xcf00,
643                 .inputs         = {{
644                         .name = name_comp1,
645                         .vmux = 0,
646                         .gpio = 2 << 14,
647                 },{
648                         .name = name_comp2,
649                         .vmux = 0,
650                         .gpio = 1 << 14,
651                 },{
652                         .name = name_comp3,
653                         .vmux = 0,
654                         .gpio = 0 << 14,
655                 },{
656                         .name = name_comp4,
657                         .vmux = 0,
658                         .gpio = 3 << 14,
659                 },{
660                         .name = name_svideo,
661                         .vmux = 8,
662                         .gpio = 2 << 14,
663                 }},
664         },
665         [SAA7134_BOARD_MD2819] = {
666                 .name           = "AverMedia M156 / Medion 2819",
667                 .audio_clock    = 0x00187de7,
668                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
669                 .need_tda9887   = 1,
670                 .inputs         = {{
671                         .name = name_tv,
672                         .vmux = 1,
673                         .amux = TV,
674                         .tv   = 1,
675                 },{
676                         .name = name_comp1,
677                         .vmux = 0,
678                         .amux = LINE2,
679                 },{
680                         .name = name_comp2,
681                         .vmux = 3,
682                         .amux = LINE2,
683                 },{
684                         .name = name_svideo,
685                         .vmux = 8,
686                         .amux = LINE2,
687                 }},
688                 .radio = {
689                         .name = name_radio,
690                         .amux = LINE2,
691                 },
692         },
693         [SAA7134_BOARD_BMK_MPEX_TUNER] = {
694                 /* "Greg Wickham <greg.wickham@grangenet.net> */
695                 .name           = "BMK MPEX Tuner",
696                 .audio_clock    = 0x200000,
697                 .tuner_type     = TUNER_PHILIPS_PAL,
698                 .inputs         = {{
699                         .name = name_comp1,
700                         .vmux = 1,
701                         .amux = LINE1,
702                 },{
703                         .name = name_svideo,
704                         .vmux = 8,
705                         .amux = LINE1,
706                 },{
707                         .name = name_tv,
708                         .vmux = 3,
709                         .amux = LINE2,
710                         .tv   = 1,
711                 }},
712                 .i2s_rate  = 48000,
713                 .has_ts    = 1,
714                 .video_out = CCIR656,
715         },
716         [SAA7134_BOARD_ASUSTEK_TVFM7133] = {
717                 .name           = "ASUS TV-FM 7133",
718                 .audio_clock    = 0x00187de7,
719                 // probably wrong, the 7133 one is the NTSC version ...
720                 // .tuner_type     = TUNER_PHILIPS_FM1236_MK3
721                 .tuner_type     = TUNER_LG_NTSC_NEW_TAPC,
722                 .need_tda9887   = 1,
723                 .inputs         = {{
724                         .name = name_tv,
725                         .vmux = 1,
726                         .amux = TV,
727                         .tv   = 1,
728                 },{
729                         .name = name_comp1,
730                         .vmux = 4,
731                         .amux = LINE2,
732                 },{
733                         .name = name_svideo,
734                         .vmux = 6,
735                         .amux = LINE2,
736                 }},
737                 .radio = {
738                         .name = name_radio,
739                         .amux = LINE1,
740                 },
741         },
742         [SAA7134_BOARD_PINNACLE_PCTV_STEREO] = {
743                 .name           = "Pinnacle PCTV Stereo (saa7134)",
744                 .audio_clock    = 0x00187de7,
745                 .tuner_type     = TUNER_MT2032,
746                 .need_tda9887   = 1,
747                 .inputs         = {{
748                         .name = name_tv,
749                         .vmux = 3,
750                         .amux = TV,
751                         .tv   = 1,
752                 },{
753                         .name = name_comp1,
754                         .vmux = 0,
755                         .amux = LINE2,
756                 },{
757                         .name = name_comp2,
758                         .vmux = 1,
759                         .amux = LINE2,
760                 },{
761                         .name = name_svideo,
762                         .vmux = 8,
763                         .amux = LINE2,
764                 }},
765         },
766         [SAA7134_BOARD_MANLI_MTV002] = {
767                 /* Ognjen Nastic <ognjen@logosoft.ba> */
768                 .name           = "Manli MuchTV M-TV002",
769                 .audio_clock    = 0x00200000,
770                 .tuner_type     = TUNER_PHILIPS_PAL,
771                 .inputs         = {{
772                         .name = name_svideo,
773                         .vmux = 8,
774                         .amux = LINE1,
775                 },{
776                         .name   = name_comp1,
777                         .vmux   = 1,
778                         .amux   = LINE1,
779                 },{
780                         .name = name_tv,
781                         .vmux = 3,
782                         .amux = LINE2,
783                         .tv   = 1,
784                 }},
785                 .radio = {
786                         .name = name_radio,
787                         .amux = LINE2,
788                 },
789         },
790         [SAA7134_BOARD_MANLI_MTV001] = {
791                 /* Ognjen Nastic <ognjen@logosoft.ba> UNTESTED */
792                 .name           = "Manli MuchTV M-TV001",
793                 .audio_clock    = 0x00200000,
794                 .tuner_type     = TUNER_PHILIPS_PAL,
795                 .inputs         = {{
796                         .name = name_svideo,
797                         .vmux = 8,
798                         .amux = LINE1,
799                 },{                     
800                         .name = name_comp1,
801                         .vmux = 1,
802                         .amux = LINE1,
803                 },{
804                         .name = name_tv,
805                         .vmux = 3,
806                         .amux = LINE2,
807                         .tv   = 1,
808                 }},
809         },
810         [SAA7134_BOARD_TG3000TV] = {
811                 /* TransGear 3000TV */
812                 .name           = "Nagase Sangyo TransGear 3000TV",
813                 .audio_clock    = 0x00187de7,
814                 .tuner_type     = TUNER_PHILIPS_NTSC_M,
815                 .inputs         = {{
816                         .name = name_tv,
817                         .vmux = 1,
818                         .amux = LINE2,
819                         .tv   = 1,
820                 },{
821                         .name = name_comp1,
822                         .vmux = 3,
823                         .amux = LINE2,
824                 },{
825                         .name = name_svideo,
826                         .vmux = 8,
827                         .amux = LINE2,
828                 }},
829         },
830         [SAA7134_BOARD_ECS_TVP3XP] = {
831                 .name           = "Elitegroup ECS TVP3XP FM1216 Tuner Card(PAL-BG,FM) ",
832                 .audio_clock    = 0x187de7,  // xtal 32.1 MHz
833                 .tuner_type     = TUNER_PHILIPS_PAL,
834                 .inputs         = {{
835                         .name   = name_tv,
836                         .vmux   = 1,
837                         .amux   = TV,
838                         .tv     = 1,
839                 },{
840                         .name   = name_tv_mono,
841                         .vmux   = 1,
842                         .amux   = LINE2,
843                         .tv     = 1,
844                 },{
845                         .name   = name_comp1,
846                         .vmux   = 3,
847                         .amux   = LINE1,
848                 },{
849                         .name   = name_svideo,
850                         .vmux   = 8,
851                         .amux   = LINE1,
852                 },{
853                         .name   = "CVid over SVid",
854                         .vmux   = 0,
855                         .amux   = LINE1,
856                 }},
857                 .radio = {
858                         .name   = name_radio,
859                         .amux   = LINE2,
860                 },
861         },
862         [SAA7134_BOARD_ECS_TVP3XP_4CB5] = {
863                 .name           = "Elitegroup ECS TVP3XP FM1236 Tuner Card (NTSC,FM)",
864                 .audio_clock    = 0x187de7,
865                 .tuner_type     = TUNER_PHILIPS_NTSC,
866                 .inputs         = {{
867                         .name   = name_tv,
868                         .vmux   = 1,
869                         .amux   = TV,
870                         .tv     = 1,
871                 },{
872                         .name   = name_tv_mono,
873                         .vmux   = 1,
874                         .amux   = LINE2,
875                         .tv     = 1,
876                 },{
877                         .name   = name_comp1,
878                         .vmux   = 3,
879                         .amux   = LINE1,
880                 },{
881                         .name   = name_svideo,
882                         .vmux   = 8,
883                         .amux   = LINE1,
884                 },{
885                         .name   = "CVid over SVid",
886                         .vmux   = 0,
887                         .amux   = LINE1,
888                 }},
889                 .radio = {
890                         .name   = name_radio,
891                         .amux   = LINE2,
892                 },
893         },
894         [SAA7134_BOARD_AVACSSMARTTV] = {
895                 /* Roman Pszonczenko <romka@kolos.math.uni.lodz.pl> */
896                 .name           = "AVACS SmartTV",
897                 .audio_clock    = 0x00187de7,
898                 .tuner_type     = TUNER_PHILIPS_PAL,
899                 .inputs         = {{
900                         .name = name_tv,
901                         .vmux = 1,
902                         .amux = TV,
903                         .tv   = 1,
904                 },{
905                         .name = name_tv_mono,
906                         .vmux = 1,
907                         .amux = LINE2,
908                         .tv   = 1,
909                 },{
910                         .name = name_comp1,
911                         .vmux = 0,
912                         .amux = LINE2,
913                 },{
914                         .name = name_comp2,
915                         .vmux = 3,
916                         .amux = LINE2,
917                 },{
918                         .name = name_svideo,
919                         .vmux = 8,
920                         .amux = LINE2,
921                 }},
922                 .radio = {
923                         .name = name_radio,
924                         .amux = LINE2,
925                         .gpio = 0x200000,
926                 },
927         },
928         [SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER] = {
929                 /* Michael Smith <msmith@cbnco.com> */
930                 .name           = "AVerMedia DVD EZMaker",
931                 .audio_clock    = 0x00187de7,
932                 .tuner_type     = TUNER_ABSENT,
933                 .inputs         = {{
934                         .name = name_comp1,
935                         .vmux = 3,
936                 }},
937         },
938         [SAA7134_BOARD_NOVAC_PRIMETV7133] = {
939                 /* toshii@netbsd.org */
940                 .name           = "Noval Prime TV 7133",
941                 .audio_clock    = 0x00200000,
942                 .tuner_type     = TUNER_ALPS_TSBH1_NTSC,
943                 .inputs         = {{
944                         .name = name_comp1,
945                         .vmux = 3,
946                 },{
947                         .name = name_tv,
948                         .vmux = 1,
949                         .amux = TV,
950                         .tv   = 1,
951                 },{
952                         .name = name_svideo,
953                         .vmux = 8,
954                 }},
955         },
956         [SAA7134_BOARD_AVERMEDIA_305] = {
957                 .name           = "AverMedia 305",
958                 .audio_clock    = 0x00187de7,
959                 .tuner_type     = TUNER_PHILIPS_FM1216ME_MK3,
960                 .need_tda9887   = 1,
961                 .inputs         = {{
962                         .name = name_tv,
963                         .vmux = 1,
964                         .amux = LINE2,
965                         .tv   = 1,
966                 },{
967                         .name = name_comp1,
968                         .vmux = 0,
969                         .amux = LINE2,
970                 },{
971                         .name = name_comp2,
972                         .vmux = 3,
973                         .amux = LINE2,
974                 },{
975                         .name = name_svideo,
976                         .vmux = 8,
977                         .amux = LINE2,
978                 }},
979                 .radio = {
980                          .name = name_radio,
981                          .amux = LINE2,
982                  },
983                 .mute = {
984                          .name = name_mute,
985                          .amux = LINE1,
986                 },
987         },
988         [SAA7133_BOARD_UPMOST_PURPLE_TV] = {
989                 .name           = "UPMOST PURPLE TV",
990                 .audio_clock    = 0x00187de7,
991                 .tuner_type     = TUNER_PHILIPS_FM1236_MK3,
992                 .need_tda9887   = 1,
993                 .inputs         = {{
994                         .name = name_tv,
995                         .vmux = 7,
996                         .amux = TV,
997                         .tv   = 1,
998                 },{
999                         .name = name_svideo,
1000                         .vmux = 7,
1001                         .amux = LINE1,
1002                 }},
1003           },
1004         [SAA7134_BOARD_ITEMS_MTV005] = {
1005                 /* Norman Jonas <normanjonas@arcor.de> */
1006                 .name           = "Items MuchTV Plus / IT-005",
1007                 .audio_clock    = 0x00187de7,
1008                 .tuner_type     = TUNER_PHILIPS_PAL,
1009                 .inputs         = {{
1010                         .name = name_tv,
1011                         .vmux = 3,
1012                         .amux = TV,
1013                         .tv   = 1,
1014                 },{
1015                         .name   = name_comp1,
1016                         .vmux   = 1,
1017                         .amux   = LINE1,
1018                 },{
1019                         .name = name_svideo,
1020                         .vmux = 8,
1021                         .amux = LINE1,
1022                 }},
1023                 .radio = {
1024                         .name = name_radio,
1025                         .amux = LINE2,
1026                 },
1027         },
1028 };
1029 const unsigned int saa7134_bcount = ARRAY_SIZE(saa7134_boards);
1030
1031 /* ------------------------------------------------------------------ */
1032 /* PCI ids + subsystem IDs                                            */
1033
1034 struct pci_device_id saa7134_pci_tbl[] = {
1035         {
1036                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1037                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1038                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1039                 .subdevice    = 0x2001,
1040                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
1041         },{
1042                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1043                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
1044                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1045                 .subdevice    = 0x2001,
1046                 .driver_data  = SAA7134_BOARD_PROTEUS_PRO,
1047         },{
1048                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1049                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1050                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1051                 .subdevice    = 0x6752,
1052                 .driver_data  = SAA7134_BOARD_EMPRESS,
1053         },{
1054                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1055                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1056                 .subvendor    = 0x1131,
1057                 .subdevice    = 0x4e85,
1058                 .driver_data  = SAA7134_BOARD_MONSTERTV,
1059         },{
1060                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1061                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1062                 .subvendor    = 0x153B,
1063                 .subdevice    = 0x1142,
1064                 .driver_data  = SAA7134_BOARD_CINERGY400,
1065         },{
1066                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1067                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1068                 .subvendor    = 0x153B,
1069                 .subdevice    = 0x1143,
1070                 .driver_data  = SAA7134_BOARD_CINERGY600,
1071         },{
1072                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1073                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1074                 .subvendor    = 0x5168,
1075                 .subdevice    = 0x0138,
1076                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
1077         },{
1078                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1079                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1080                 .subvendor    = 0x4e42,                         //"Typhoon PCI Capture TV Card" Art.No. 50673
1081                 .subdevice    = 0x0138,
1082                 .driver_data  = SAA7134_BOARD_FLYVIDEO3000,
1083         },{
1084                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1085                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1086                 .subvendor    = 0x5168,
1087                 .subdevice    = 0x0138,
1088                 .driver_data  = SAA7134_BOARD_FLYVIDEO2000,
1089         },{
1090                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1091                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1092                 .subvendor    = 0x16be,
1093                 .subdevice    = 0x0003,
1094                 .driver_data  = SAA7134_BOARD_MD7134,
1095         },{
1096                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1097                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1098                 .subvendor    = 0x1048,
1099                 .subdevice    = 0x226b,
1100                 .driver_data  = SAA7134_BOARD_ELSA,
1101         },{
1102                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1103                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1104                 .subvendor    = 0x1048,
1105                 .subdevice    = 0x226b,
1106                 .driver_data  = SAA7134_BOARD_ELSA_500TV,
1107         },{
1108                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1109                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1110                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
1111                 .subdevice    = 0x4842,
1112                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
1113         },{
1114                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1115                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1116                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
1117                 .subdevice    = 0x4830,
1118                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
1119         },{
1120                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1121                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
1122                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
1123                 .subdevice    = 0x4843,
1124                 .driver_data  = SAA7134_BOARD_ASUSTEK_TVFM7133,
1125         },{
1126                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1127                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1128                 .subvendor    = PCI_VENDOR_ID_ASUSTEK,
1129                 .subdevice    = 0x4840,
1130                 .driver_data  = SAA7134_BOARD_ASUSTeK_TVFM7134,
1131         },{
1132                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1133                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1134                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1135                 .subdevice    = 0xfe01,
1136                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
1137         },{
1138                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1139                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1140                 .subvendor    = 0x1894,
1141                 .subdevice    = 0xfe01,
1142                 .driver_data  = SAA7134_BOARD_TVSTATION_RDS,
1143         },{
1144                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1145                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1146                 .subvendor    = 0x1894,
1147                 .subdevice    = 0xa006,
1148                 .driver_data  = SAA7134_BOARD_TVSTATION_DVR,
1149         },{
1150                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1151                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1152                 .subvendor    = 0x1131,
1153                 .subdevice    = 0x7133,
1154                 .driver_data  = SAA7134_BOARD_VA1000POWER,
1155         },{
1156                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1157                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1158                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1159                 .subdevice    = 0x2001,
1160                 .driver_data  = SAA7134_BOARD_10MOONSTVMASTER,
1161         },{
1162                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1163                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
1164                 .subvendor    = 0x185b,
1165                 .subdevice    = 0xc100,
1166                 .driver_data  = SAA7134_BOARD_VIDEOMATE_TV,
1167         },{
1168                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1169                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1170                 .subvendor    = PCI_VENDOR_ID_MATROX,
1171                 .subdevice    = 0x48d0,
1172                 .driver_data  = SAA7134_BOARD_CRONOS_PLUS,
1173         },{
1174                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1175                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1176                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
1177                 .subdevice    = 0xa70b,
1178                 .driver_data  = SAA7134_BOARD_MD2819,
1179         },{
1180                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1181                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1182                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
1183                 .subdevice    = 0x2115,
1184                 .driver_data  = SAA7134_BOARD_AVERMEDIA_305,
1185         },{
1186                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1187                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1188                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
1189                 .subdevice    = 0x10ff,
1190                 .driver_data  = SAA7134_BOARD_AVERMEDIA_DVD_EZMAKER,
1191         },{
1192                 /* TransGear 3000TV */
1193                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1194                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1195                 .subvendor    = 0x1461, /* Avermedia Technologies Inc */
1196                 .subdevice    = 0x050c,
1197                 .driver_data  = SAA7134_BOARD_TG3000TV,
1198         },{
1199                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1200                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1201                 .subvendor    = 0x11bd,
1202                 .subdevice    = 0x002b,
1203                 .driver_data  = SAA7134_BOARD_PINNACLE_PCTV_STEREO,
1204         },{
1205                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1206                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1207                 .subvendor    = 0x1019,
1208                 .subdevice    = 0x4cb4,
1209                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP,
1210         },{
1211                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1212                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
1213                 .subvendor    = 0x1019,
1214                 .subdevice    = 0x4cb5,
1215                 .driver_data  = SAA7134_BOARD_ECS_TVP3XP_4CB5,
1216         },{
1217                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1218                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
1219                 .subvendor    = 0x12ab,
1220                 .subdevice    = 0x0800,
1221                 .driver_data  = SAA7133_BOARD_UPMOST_PURPLE_TV,
1222                 
1223         },{
1224                 /* --- boards without eeprom + subsystem ID --- */
1225                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1226                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1227                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1228                 .subdevice    = 0,
1229                 .driver_data  = SAA7134_BOARD_NOAUTO,
1230         },{
1231                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1232                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1233                 .subvendor    = PCI_VENDOR_ID_PHILIPS,
1234                 .subdevice    = 0,
1235                 .driver_data  = SAA7134_BOARD_NOAUTO,
1236         },{
1237                 
1238                 /* --- default catch --- */
1239                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1240                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7130,
1241                 .subvendor    = PCI_ANY_ID,
1242                 .subdevice    = PCI_ANY_ID,
1243                 .driver_data  = SAA7134_BOARD_UNKNOWN,
1244         },{
1245                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1246                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
1247                 .subvendor    = PCI_ANY_ID,
1248                 .subdevice    = PCI_ANY_ID,
1249                 .driver_data  = SAA7134_BOARD_UNKNOWN,
1250         },{
1251                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1252                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
1253                 .subvendor    = PCI_ANY_ID,
1254                 .subdevice    = PCI_ANY_ID,
1255                 .driver_data  = SAA7134_BOARD_UNKNOWN,
1256         },{
1257                 .vendor       = PCI_VENDOR_ID_PHILIPS,
1258                 .device       = PCI_DEVICE_ID_PHILIPS_SAA7135,
1259                 .subvendor    = PCI_ANY_ID,
1260                 .subdevice    = PCI_ANY_ID,
1261                 .driver_data  = SAA7134_BOARD_UNKNOWN,
1262         },{
1263                 /* --- end of list --- */
1264         }
1265 };
1266 MODULE_DEVICE_TABLE(pci, saa7134_pci_tbl);
1267
1268 /* ----------------------------------------------------------- */
1269 /* flyvideo tweaks                                             */
1270
1271 #if 0
1272 static struct {
1273         char  *model;
1274         int   tuner_type;
1275 } fly_list[0x20] = {
1276         /* default catch ... */
1277         [ 0 ... 0x1f ] = {
1278                 .model      = "UNKNOWN",
1279                 .tuner_type = TUNER_ABSENT,
1280         },
1281         /* ... the ones known so far */
1282         [ 0x05 ] = {
1283                 .model      = "PAL-BG",
1284                 .tuner_type = TUNER_LG_PAL_NEW_TAPC,
1285         },
1286         [ 0x10 ] = {
1287                 .model      = "PAL-BG / PAL-DK",
1288                 .tuner_type = TUNER_PHILIPS_PAL,
1289         },
1290         [ 0x15 ] = {
1291                 .model      = "NTSC",
1292                 .tuner_type = TUNER_ABSENT /* FIXME */,
1293         },
1294 };
1295 #endif
1296
1297 static void board_flyvideo(struct saa7134_dev *dev)
1298 {
1299 #if 0
1300         u32 value;
1301         int index;
1302
1303         value = dev->gpio_value;
1304         index = (value & 0x1f00) >> 8;
1305         printk(KERN_INFO "%s: flyvideo: gpio is 0x%x [model=%s,tuner=%d]\n",
1306                dev->name, value, fly_list[index].model,
1307                fly_list[index].tuner_type);
1308         dev->tuner_type = fly_list[index].tuner_type;
1309 #endif
1310 }
1311
1312 /* ----------------------------------------------------------- */
1313
1314 int saa7134_board_init(struct saa7134_dev *dev)
1315 {
1316         // Always print gpio, often manufacturers encode tuner type and other info.
1317         saa_writel(SAA7134_GPIO_GPMODE0 >> 2, 0);
1318         dev->gpio_value = saa_readl(SAA7134_GPIO_GPSTATUS0 >> 2);
1319         printk(KERN_INFO "%s: board init: gpio is %x\n", dev->name, dev->gpio_value);
1320
1321         switch (dev->board) {
1322         case SAA7134_BOARD_FLYVIDEO2000:
1323         case SAA7134_BOARD_FLYVIDEO3000:
1324                 board_flyvideo(dev);
1325                 dev->has_remote = 1;
1326                 break;
1327         case SAA7134_BOARD_CINERGY400:
1328         case SAA7134_BOARD_CINERGY600:
1329         case SAA7134_BOARD_ECS_TVP3XP:
1330         case SAA7134_BOARD_ECS_TVP3XP_4CB5:
1331                 dev->has_remote = 1;
1332                 break;
1333         case SAA7134_BOARD_AVACSSMARTTV:
1334                 dev->has_remote = 1;
1335                 break;
1336         }
1337         return 0;
1338 }
1339
1340 /* ----------------------------------------------------------- */
1341 /*
1342  * Local variables:
1343  * c-basic-offset: 8
1344  * End:
1345  */