0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 ==================================
0004 How to get the bt8xx cards working
0005 ==================================
0006
0007 Authors:
0008 Richard Walker,
0009 Jamie Honan,
0010 Michael Hunold,
0011 Manu Abraham,
0012 Uwe Bugla,
0013 Michael Krufky
0014
0015 General information
0016 -------------------
0017
0018 This class of cards has a bt878a as the PCI interface, and require the bttv
0019 driver for accessing the i2c bus and the gpio pins of the bt8xx chipset.
0020
0021 Please see Documentation/admin-guide/media/bttv-cardlist.rst for a complete
0022 list of Cards based on the Conexant Bt8xx PCI bridge supported by the
0023 Linux Kernel.
0024
0025 In order to be able to compile the kernel, some config options should be
0026 enabled::
0027
0028 ./scripts/config -e PCI
0029 ./scripts/config -e INPUT
0030 ./scripts/config -m I2C
0031 ./scripts/config -m MEDIA_SUPPORT
0032 ./scripts/config -e MEDIA_PCI_SUPPORT
0033 ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
0034 ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
0035 ./scripts/config -e MEDIA_RADIO_SUPPORT
0036 ./scripts/config -e RC_CORE
0037 ./scripts/config -m VIDEO_BT848
0038 ./scripts/config -m DVB_BT8XX
0039
0040 If you want to automatically support all possible variants of the Bt8xx
0041 cards, you should also do::
0042
0043 ./scripts/config -e MEDIA_SUBDRV_AUTOSELECT
0044
0045 .. note::
0046
0047 Please use the following options with care as deselection of drivers which
0048 are in fact necessary may result in DVB devices that cannot be tuned due
0049 to lack of driver support.
0050
0051 If your goal is to just support an specific board, you may, instead,
0052 disable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers
0053 required by your board. With that, you can save some RAM.
0054
0055 You can do that by calling make xconfig/qconfig/menuconfig and look at
0056 the options on those menu options (only enabled if
0057 ``Autoselect ancillary drivers`` is disabled:
0058
0059 #) ``Device drivers`` => ``Multimedia support`` => ``Customize TV tuners``
0060 #) ``Device drivers`` => ``Multimedia support`` => ``Customize DVB frontends``
0061
0062 Then, on each of the above menu, please select your card-specific
0063 frontend and tuner modules.
0064
0065
0066 Loading Modules
0067 ---------------
0068
0069 Regular case: If the bttv driver detects a bt8xx-based DVB card, all
0070 frontend and backend modules will be loaded automatically.
0071
0072 Exceptions are:
0073
0074 - Old TV cards without EEPROMs, sharing a common PCI subsystem ID;
0075 - Old TwinHan DST cards or clones with or without CA slot and not
0076 containing an Eeprom.
0077
0078 In the following cases overriding the PCI type detection for bttv and
0079 for dvb-bt8xx drivers by passing modprobe parameters may be necessary.
0080
0081 Running TwinHan and Clones
0082 ~~~~~~~~~~~~~~~~~~~~~~~~~~
0083
0084 As shown at Documentation/admin-guide/media/bttv-cardlist.rst, TwinHan and
0085 clones use ``card=113`` modprobe parameter. So, in order to properly
0086 detect it for devices without EEPROM, you should use::
0087
0088 $ modprobe bttv card=113
0089 $ modprobe dst
0090
0091 Useful parameters for verbosity level and debugging the dst module::
0092
0093 verbose=0: messages are disabled
0094 1: only error messages are displayed
0095 2: notifications are displayed
0096 3: other useful messages are displayed
0097 4: debug setting
0098 dst_addons=0: card is a free to air (FTA) card only
0099 0x20: card has a conditional access slot for scrambled channels
0100 dst_algo=0: (default) Software tuning algorithm
0101 1: Hardware tuning algorithm
0102
0103
0104 The autodetected values are determined by the cards' "response string".
0105
0106 In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
0107
0108 For bug reports please send in a complete log with verbose=4 activated.
0109 Please also see Documentation/admin-guide/media/ci.rst.
0110
0111 Running multiple cards
0112 ~~~~~~~~~~~~~~~~~~~~~~
0113
0114 See Documentation/admin-guide/media/bttv-cardlist.rst for a complete list of
0115 Card ID. Some examples:
0116
0117 =========================== ===
0118 Brand name ID
0119 =========================== ===
0120 Pinnacle PCTV Sat 94
0121 Nebula Electronics Digi TV 104
0122 pcHDTV HD-2000 TV 112
0123 Twinhan DST and clones 113
0124 Avermedia AverTV DVB-T 77: 123
0125 Avermedia AverTV DVB-T 761 124
0126 DViCO FusionHDTV DVB-T Lite 128
0127 DViCO FusionHDTV 5 Lite 135
0128 =========================== ===
0129
0130 .. note::
0131
0132 When you have multiple cards, the order of the card ID should
0133 match the order where they're detected by the system. Please notice
0134 that removing/inserting other PCI cards may change the detection
0135 order.
0136
0137 Example::
0138
0139 $ modprobe bttv card=113 card=135
0140
0141 In case of further problems please subscribe and send questions to
0142 the mailing list: linux-media@vger.kernel.org.
0143
0144 Probing the cards with broken PCI subsystem ID
0145 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0146
0147 There are some TwinHan cards whose EEPROM has become corrupted for some
0148 reason. The cards do not have a correct PCI subsystem ID.
0149 Still, it is possible to force probing the cards with::
0150
0151 $ echo 109e 0878 $subvendor $subdevice > \
0152 /sys/bus/pci/drivers/bt878/new_id
0153
0154 The two numbers there are::
0155
0156 109e: PCI_VENDOR_ID_BROOKTREE
0157 0878: PCI_DEVICE_ID_BROOKTREE_878