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