132e2eae2SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0 232e2eae2SMauro Carvalho Chehab 3*f631516fSMauro Carvalho Chehab================================== 432e2eae2SMauro Carvalho ChehabHow to get the bt8xx cards working 532e2eae2SMauro Carvalho Chehab================================== 632e2eae2SMauro Carvalho Chehab 7*f631516fSMauro Carvalho ChehabAuthors: 8*f631516fSMauro Carvalho Chehab Richard Walker, 932e2eae2SMauro Carvalho Chehab Jamie Honan, 1032e2eae2SMauro Carvalho Chehab Michael Hunold, 1132e2eae2SMauro Carvalho Chehab Manu Abraham, 1232e2eae2SMauro Carvalho Chehab Uwe Bugla, 1332e2eae2SMauro Carvalho Chehab Michael Krufky 1432e2eae2SMauro Carvalho Chehab 1532e2eae2SMauro Carvalho ChehabGeneral information 1632e2eae2SMauro Carvalho Chehab------------------- 1732e2eae2SMauro Carvalho Chehab 1832e2eae2SMauro Carvalho ChehabThis class of cards has a bt878a as the PCI interface, and require the bttv driver 1932e2eae2SMauro Carvalho Chehabfor accessing the i2c bus and the gpio pins of the bt8xx chipset. 2032e2eae2SMauro Carvalho Chehab 21*f631516fSMauro Carvalho ChehabPlease see :doc:`cards` for a complete list of Cards based on the 22*f631516fSMauro Carvalho ChehabConexant Bt8xx PCI bridge supported by the Linux Kernel. 2332e2eae2SMauro Carvalho Chehab 24*f631516fSMauro Carvalho ChehabIn order to be able to compile the kernel, some config options should be 25*f631516fSMauro Carvalho Chehabenabled:: 2632e2eae2SMauro Carvalho Chehab 27*f631516fSMauro Carvalho Chehab ./scripts/config -e PCI 28*f631516fSMauro Carvalho Chehab ./scripts/config -e INPUT 29*f631516fSMauro Carvalho Chehab ./scripts/config -m I2C 30*f631516fSMauro Carvalho Chehab ./scripts/config -m MEDIA_SUPPORT 31*f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_PCI_SUPPORT 32*f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT 33*f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT 34*f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_RADIO_SUPPORT 35*f631516fSMauro Carvalho Chehab ./scripts/config -e RC_CORE 36*f631516fSMauro Carvalho Chehab ./scripts/config -m VIDEO_BT848 37*f631516fSMauro Carvalho Chehab ./scripts/config -m DVB_BT8XX 3832e2eae2SMauro Carvalho Chehab 39*f631516fSMauro Carvalho ChehabIf you want to automatically support all possible variants of the Bt8xx 40*f631516fSMauro Carvalho Chehabcards, you should also do:: 4132e2eae2SMauro Carvalho Chehab 42*f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_SUBDRV_AUTOSELECT 4332e2eae2SMauro Carvalho Chehab 44*f631516fSMauro Carvalho Chehab.. note:: 4532e2eae2SMauro Carvalho Chehab 46*f631516fSMauro Carvalho Chehab Please use the following options with care as deselection of drivers which 47*f631516fSMauro Carvalho Chehab are in fact necessary may result in DVB devices that cannot be tuned due 48*f631516fSMauro Carvalho Chehab to lack of driver support. 4932e2eae2SMauro Carvalho Chehab 50*f631516fSMauro Carvalho ChehabIf your goal is to just support an specific board, you may, instead, 51*f631516fSMauro Carvalho Chehabdisable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers 52*f631516fSMauro Carvalho Chehabrequired by your board. With that, you can save some RAM. 53*f631516fSMauro Carvalho Chehab 54*f631516fSMauro Carvalho ChehabYou can do that by calling make xconfig/qconfig/menuconfig and look at 55*f631516fSMauro Carvalho Chehabthe options on those menu options (only enabled if 56*f631516fSMauro Carvalho Chehab``Autoselect ancillary drivers`` is disabled: 57*f631516fSMauro Carvalho Chehab 58*f631516fSMauro Carvalho Chehab#) ``Device drivers`` => ``Multimedia support`` => ``Customize TV tuners`` 59*f631516fSMauro Carvalho Chehab#) ``Device drivers`` => ``Multimedia support`` => ``Customize DVB frontends`` 60*f631516fSMauro Carvalho Chehab 61*f631516fSMauro Carvalho ChehabThen, on each of the above menu, please select your card-specific 62*f631516fSMauro Carvalho Chehabfrontend and tuner modules. 63*f631516fSMauro Carvalho Chehab 6432e2eae2SMauro Carvalho Chehab 6532e2eae2SMauro Carvalho ChehabLoading Modules 6632e2eae2SMauro Carvalho Chehab--------------- 6732e2eae2SMauro Carvalho Chehab 68*f631516fSMauro Carvalho ChehabRegular case: If the bttv driver detects a bt8xx-based DVB card, all 69*f631516fSMauro Carvalho Chehabfrontend and backend modules will be loaded automatically. 7032e2eae2SMauro Carvalho Chehab 71*f631516fSMauro Carvalho ChehabExceptions are: 72*f631516fSMauro Carvalho Chehab 73*f631516fSMauro Carvalho Chehab- Old TV cards without EEPROMs, sharing a common PCI ID; 74*f631516fSMauro Carvalho Chehab- Old TwinHan DST cards or clones with or without CA slot and not 75*f631516fSMauro Carvalho Chehab containing an Eeprom. 76*f631516fSMauro Carvalho Chehab 77*f631516fSMauro Carvalho ChehabPeople running udev please see :doc:`udev`. 78*f631516fSMauro Carvalho Chehab 79*f631516fSMauro Carvalho ChehabIn the following cases overriding the PCI type detection for bttv and 80*f631516fSMauro Carvalho Chehabfor dvb-bt8xx drivers by passing modprobe parameters may be necessary. 8132e2eae2SMauro Carvalho Chehab 8232e2eae2SMauro Carvalho ChehabRunning TwinHan and Clones 8332e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 8432e2eae2SMauro Carvalho Chehab 85*f631516fSMauro Carvalho ChehabAs shown at :doc:`bttv-cardlist`, TwinHan and 86*f631516fSMauro Carvalho Chehabclones use ``card=113`` modprobe parameter. So, in order to properly 87*f631516fSMauro Carvalho Chehabdetect it for devices without EEPROM, you should use:: 8832e2eae2SMauro Carvalho Chehab 8932e2eae2SMauro Carvalho Chehab $ modprobe bttv card=113 9032e2eae2SMauro Carvalho Chehab $ modprobe dst 9132e2eae2SMauro Carvalho Chehab 92*f631516fSMauro Carvalho ChehabUseful parameters for verbosity level and debugging the dst module:: 9332e2eae2SMauro Carvalho Chehab 9432e2eae2SMauro Carvalho Chehab verbose=0: messages are disabled 9532e2eae2SMauro Carvalho Chehab 1: only error messages are displayed 9632e2eae2SMauro Carvalho Chehab 2: notifications are displayed 9732e2eae2SMauro Carvalho Chehab 3: other useful messages are displayed 9832e2eae2SMauro Carvalho Chehab 4: debug setting 9932e2eae2SMauro Carvalho Chehab dst_addons=0: card is a free to air (FTA) card only 10032e2eae2SMauro Carvalho Chehab 0x20: card has a conditional access slot for scrambled channels 101*f631516fSMauro Carvalho Chehab dst_algo=0: (default) Software tuning algorithm 102*f631516fSMauro Carvalho Chehab 1: Hardware tuning algorithm 103*f631516fSMauro Carvalho Chehab 10432e2eae2SMauro Carvalho Chehab 10532e2eae2SMauro Carvalho ChehabThe autodetected values are determined by the cards' "response string". 106*f631516fSMauro Carvalho Chehab 10732e2eae2SMauro Carvalho ChehabIn your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. 108*f631516fSMauro Carvalho Chehab 10932e2eae2SMauro Carvalho ChehabFor bug reports please send in a complete log with verbose=4 activated. 110*f631516fSMauro Carvalho ChehabPlease also see :doc:`ci`. 11132e2eae2SMauro Carvalho Chehab 11232e2eae2SMauro Carvalho ChehabRunning multiple cards 11332e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~ 11432e2eae2SMauro Carvalho Chehab 115*f631516fSMauro Carvalho ChehabSee :doc:`bttv-cardlist` for a complete list of 116*f631516fSMauro Carvalho ChehabCard ID. Some examples: 11732e2eae2SMauro Carvalho Chehab 118*f631516fSMauro Carvalho Chehab =========================== === 119*f631516fSMauro Carvalho Chehab Brand name ID 120*f631516fSMauro Carvalho Chehab =========================== === 121*f631516fSMauro Carvalho Chehab Pinnacle PCTV Sat 94 122*f631516fSMauro Carvalho Chehab Nebula Electronics Digi TV 104 123*f631516fSMauro Carvalho Chehab pcHDTV HD-2000 TV 112 124*f631516fSMauro Carvalho Chehab Twinhan DST and clones 113 125*f631516fSMauro Carvalho Chehab Avermedia AverTV DVB-T 77: 123 126*f631516fSMauro Carvalho Chehab Avermedia AverTV DVB-T 761 124 127*f631516fSMauro Carvalho Chehab DViCO FusionHDTV DVB-T Lite 128 128*f631516fSMauro Carvalho Chehab DViCO FusionHDTV 5 Lite 135 129*f631516fSMauro Carvalho Chehab =========================== === 13032e2eae2SMauro Carvalho Chehab 13132e2eae2SMauro Carvalho Chehab.. note:: 13232e2eae2SMauro Carvalho Chehab 133*f631516fSMauro Carvalho Chehab When you have multiple cards, the order of the card ID should 134*f631516fSMauro Carvalho Chehab match the order where they're detected by the system. Please notice 135*f631516fSMauro Carvalho Chehab that removing/inserting other PCI cards may change the detection 136*f631516fSMauro Carvalho Chehab order. 13732e2eae2SMauro Carvalho Chehab 138*f631516fSMauro Carvalho ChehabExample:: 13932e2eae2SMauro Carvalho Chehab 14032e2eae2SMauro Carvalho Chehab $ modprobe bttv card=113 card=135 14132e2eae2SMauro Carvalho Chehab 142*f631516fSMauro Carvalho ChehabIn case of further problems please subscribe and send questions to 143*f631516fSMauro Carvalho Chehabthe mailing list: linux-media@vger.kernel.org. 14432e2eae2SMauro Carvalho Chehab 14532e2eae2SMauro Carvalho ChehabProbing the cards with broken PCI subsystem ID 14632e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14732e2eae2SMauro Carvalho Chehab 148*f631516fSMauro Carvalho ChehabThere are some TwinHan cards whose EEPROM has become corrupted for some 149*f631516fSMauro Carvalho Chehabreason. The cards do not have a correct PCI subsystem ID. 150*f631516fSMauro Carvalho ChehabStill, it is possible to force probing the cards with:: 15132e2eae2SMauro Carvalho Chehab 15232e2eae2SMauro Carvalho Chehab $ echo 109e 0878 $subvendor $subdevice > \ 15332e2eae2SMauro Carvalho Chehab /sys/bus/pci/drivers/bt878/new_id 15432e2eae2SMauro Carvalho Chehab 155*f631516fSMauro Carvalho ChehabThe two numbers there are:: 15632e2eae2SMauro Carvalho Chehab 15732e2eae2SMauro Carvalho Chehab 109e: PCI_VENDOR_ID_BROOKTREE 15832e2eae2SMauro Carvalho Chehab 0878: PCI_DEVICE_ID_BROOKTREE_878 159