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