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