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 18*6ef43d27SMauro Carvalho ChehabThis class of cards has a bt878a as the PCI interface, and require the bttv 19*6ef43d27SMauro Carvalho Chehabdriver for accessing the i2c bus and the gpio pins of the bt8xx chipset. 2032e2eae2SMauro Carvalho Chehab 21*6ef43d27SMauro Carvalho ChehabPlease see Documentation/admin-guide/media/bttv-cardlist.rst for a complete 22*6ef43d27SMauro Carvalho Chehablist of Cards based on the Conexant Bt8xx PCI bridge supported by the 23*6ef43d27SMauro Carvalho ChehabLinux Kernel. 2432e2eae2SMauro Carvalho Chehab 25f631516fSMauro Carvalho ChehabIn order to be able to compile the kernel, some config options should be 26f631516fSMauro Carvalho Chehabenabled:: 2732e2eae2SMauro Carvalho Chehab 28f631516fSMauro Carvalho Chehab ./scripts/config -e PCI 29f631516fSMauro Carvalho Chehab ./scripts/config -e INPUT 30f631516fSMauro Carvalho Chehab ./scripts/config -m I2C 31f631516fSMauro Carvalho Chehab ./scripts/config -m MEDIA_SUPPORT 32f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_PCI_SUPPORT 33f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT 34f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT 35f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_RADIO_SUPPORT 36f631516fSMauro Carvalho Chehab ./scripts/config -e RC_CORE 37f631516fSMauro Carvalho Chehab ./scripts/config -m VIDEO_BT848 38f631516fSMauro Carvalho Chehab ./scripts/config -m DVB_BT8XX 3932e2eae2SMauro Carvalho Chehab 40f631516fSMauro Carvalho ChehabIf you want to automatically support all possible variants of the Bt8xx 41f631516fSMauro Carvalho Chehabcards, you should also do:: 4232e2eae2SMauro Carvalho Chehab 43f631516fSMauro Carvalho Chehab ./scripts/config -e MEDIA_SUBDRV_AUTOSELECT 4432e2eae2SMauro Carvalho Chehab 45f631516fSMauro Carvalho Chehab.. note:: 4632e2eae2SMauro Carvalho Chehab 47f631516fSMauro Carvalho Chehab Please use the following options with care as deselection of drivers which 48f631516fSMauro Carvalho Chehab are in fact necessary may result in DVB devices that cannot be tuned due 49f631516fSMauro Carvalho Chehab to lack of driver support. 5032e2eae2SMauro Carvalho Chehab 51f631516fSMauro Carvalho ChehabIf your goal is to just support an specific board, you may, instead, 52f631516fSMauro Carvalho Chehabdisable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers 53f631516fSMauro Carvalho Chehabrequired by your board. With that, you can save some RAM. 54f631516fSMauro Carvalho Chehab 55f631516fSMauro Carvalho ChehabYou can do that by calling make xconfig/qconfig/menuconfig and look at 56f631516fSMauro Carvalho Chehabthe options on those menu options (only enabled if 57f631516fSMauro Carvalho Chehab``Autoselect ancillary drivers`` is disabled: 58f631516fSMauro Carvalho Chehab 59f631516fSMauro Carvalho Chehab#) ``Device drivers`` => ``Multimedia support`` => ``Customize TV tuners`` 60f631516fSMauro Carvalho Chehab#) ``Device drivers`` => ``Multimedia support`` => ``Customize DVB frontends`` 61f631516fSMauro Carvalho Chehab 62f631516fSMauro Carvalho ChehabThen, on each of the above menu, please select your card-specific 63f631516fSMauro Carvalho Chehabfrontend and tuner modules. 64f631516fSMauro Carvalho Chehab 6532e2eae2SMauro Carvalho Chehab 6632e2eae2SMauro Carvalho ChehabLoading Modules 6732e2eae2SMauro Carvalho Chehab--------------- 6832e2eae2SMauro Carvalho Chehab 69f631516fSMauro Carvalho ChehabRegular case: If the bttv driver detects a bt8xx-based DVB card, all 70f631516fSMauro Carvalho Chehabfrontend and backend modules will be loaded automatically. 7132e2eae2SMauro Carvalho Chehab 72f631516fSMauro Carvalho ChehabExceptions are: 73f631516fSMauro Carvalho Chehab 7471644864SMauro Carvalho Chehab- Old TV cards without EEPROMs, sharing a common PCI subsystem ID; 75f631516fSMauro Carvalho Chehab- Old TwinHan DST cards or clones with or without CA slot and not 76f631516fSMauro Carvalho Chehab containing an Eeprom. 77f631516fSMauro Carvalho Chehab 78f631516fSMauro Carvalho ChehabIn the following cases overriding the PCI type detection for bttv and 79f631516fSMauro Carvalho Chehabfor dvb-bt8xx drivers by passing modprobe parameters may be necessary. 8032e2eae2SMauro Carvalho Chehab 8132e2eae2SMauro Carvalho ChehabRunning TwinHan and Clones 8232e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~ 8332e2eae2SMauro Carvalho Chehab 84*6ef43d27SMauro Carvalho ChehabAs shown at Documentation/admin-guide/media/bttv-cardlist.rst, TwinHan and 85f631516fSMauro Carvalho Chehabclones use ``card=113`` modprobe parameter. So, in order to properly 86f631516fSMauro Carvalho Chehabdetect it for devices without EEPROM, you should use:: 8732e2eae2SMauro Carvalho Chehab 8832e2eae2SMauro Carvalho Chehab $ modprobe bttv card=113 8932e2eae2SMauro Carvalho Chehab $ modprobe dst 9032e2eae2SMauro Carvalho Chehab 91f631516fSMauro Carvalho ChehabUseful parameters for verbosity level and debugging the dst module:: 9232e2eae2SMauro Carvalho Chehab 9332e2eae2SMauro Carvalho Chehab verbose=0: messages are disabled 9432e2eae2SMauro Carvalho Chehab 1: only error messages are displayed 9532e2eae2SMauro Carvalho Chehab 2: notifications are displayed 9632e2eae2SMauro Carvalho Chehab 3: other useful messages are displayed 9732e2eae2SMauro Carvalho Chehab 4: debug setting 9832e2eae2SMauro Carvalho Chehab dst_addons=0: card is a free to air (FTA) card only 9932e2eae2SMauro Carvalho Chehab 0x20: card has a conditional access slot for scrambled channels 100f631516fSMauro Carvalho Chehab dst_algo=0: (default) Software tuning algorithm 101f631516fSMauro Carvalho Chehab 1: Hardware tuning algorithm 102f631516fSMauro Carvalho Chehab 10332e2eae2SMauro Carvalho Chehab 10432e2eae2SMauro Carvalho ChehabThe autodetected values are determined by the cards' "response string". 105f631516fSMauro Carvalho Chehab 10632e2eae2SMauro Carvalho ChehabIn your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI]. 107f631516fSMauro Carvalho Chehab 10832e2eae2SMauro Carvalho ChehabFor bug reports please send in a complete log with verbose=4 activated. 109*6ef43d27SMauro Carvalho ChehabPlease also see Documentation/admin-guide/media/ci.rst. 11032e2eae2SMauro Carvalho Chehab 11132e2eae2SMauro Carvalho ChehabRunning multiple cards 11232e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~ 11332e2eae2SMauro Carvalho Chehab 114*6ef43d27SMauro Carvalho ChehabSee Documentation/admin-guide/media/bttv-cardlist.rst for a complete list of 115f631516fSMauro Carvalho ChehabCard ID. Some examples: 11632e2eae2SMauro Carvalho Chehab 117f631516fSMauro Carvalho Chehab =========================== === 118f631516fSMauro Carvalho Chehab Brand name ID 119f631516fSMauro Carvalho Chehab =========================== === 120f631516fSMauro Carvalho Chehab Pinnacle PCTV Sat 94 121f631516fSMauro Carvalho Chehab Nebula Electronics Digi TV 104 122f631516fSMauro Carvalho Chehab pcHDTV HD-2000 TV 112 123f631516fSMauro Carvalho Chehab Twinhan DST and clones 113 124f631516fSMauro Carvalho Chehab Avermedia AverTV DVB-T 77: 123 125f631516fSMauro Carvalho Chehab Avermedia AverTV DVB-T 761 124 126f631516fSMauro Carvalho Chehab DViCO FusionHDTV DVB-T Lite 128 127f631516fSMauro Carvalho Chehab DViCO FusionHDTV 5 Lite 135 128f631516fSMauro Carvalho Chehab =========================== === 12932e2eae2SMauro Carvalho Chehab 13032e2eae2SMauro Carvalho Chehab.. note:: 13132e2eae2SMauro Carvalho Chehab 132f631516fSMauro Carvalho Chehab When you have multiple cards, the order of the card ID should 133f631516fSMauro Carvalho Chehab match the order where they're detected by the system. Please notice 134f631516fSMauro Carvalho Chehab that removing/inserting other PCI cards may change the detection 135f631516fSMauro Carvalho Chehab order. 13632e2eae2SMauro Carvalho Chehab 137f631516fSMauro Carvalho ChehabExample:: 13832e2eae2SMauro Carvalho Chehab 13932e2eae2SMauro Carvalho Chehab $ modprobe bttv card=113 card=135 14032e2eae2SMauro Carvalho Chehab 141f631516fSMauro Carvalho ChehabIn case of further problems please subscribe and send questions to 142f631516fSMauro Carvalho Chehabthe mailing list: linux-media@vger.kernel.org. 14332e2eae2SMauro Carvalho Chehab 14432e2eae2SMauro Carvalho ChehabProbing the cards with broken PCI subsystem ID 14532e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 14632e2eae2SMauro Carvalho Chehab 147f631516fSMauro Carvalho ChehabThere are some TwinHan cards whose EEPROM has become corrupted for some 148f631516fSMauro Carvalho Chehabreason. The cards do not have a correct PCI subsystem ID. 149f631516fSMauro Carvalho ChehabStill, it is possible to force probing the cards with:: 15032e2eae2SMauro Carvalho Chehab 15132e2eae2SMauro Carvalho Chehab $ echo 109e 0878 $subvendor $subdevice > \ 15232e2eae2SMauro Carvalho Chehab /sys/bus/pci/drivers/bt878/new_id 15332e2eae2SMauro Carvalho Chehab 154f631516fSMauro Carvalho ChehabThe two numbers there are:: 15532e2eae2SMauro Carvalho Chehab 15632e2eae2SMauro Carvalho Chehab 109e: PCI_VENDOR_ID_BROOKTREE 15732e2eae2SMauro Carvalho Chehab 0878: PCI_DEVICE_ID_BROOKTREE_878 158