^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ==================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) How to get the bt8xx cards working
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) ==================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Authors:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Richard Walker,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Jamie Honan,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Michael Hunold,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Manu Abraham,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Uwe Bugla,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) Michael Krufky
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) General information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) -------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) This class of cards has a bt878a as the PCI interface, and require the bttv driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) for accessing the i2c bus and the gpio pins of the bt8xx chipset.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Please see :doc:`bttv-cardlist` for a complete list of Cards based on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) Conexant Bt8xx PCI bridge supported by the Linux Kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) In order to be able to compile the kernel, some config options should be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) enabled::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ./scripts/config -e PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) ./scripts/config -e INPUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) ./scripts/config -m I2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) ./scripts/config -m MEDIA_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ./scripts/config -e MEDIA_PCI_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) ./scripts/config -e MEDIA_RADIO_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) ./scripts/config -e RC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) ./scripts/config -m VIDEO_BT848
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) ./scripts/config -m DVB_BT8XX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) If you want to automatically support all possible variants of the Bt8xx
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) cards, you should also do::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) ./scripts/config -e MEDIA_SUBDRV_AUTOSELECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) Please use the following options with care as deselection of drivers which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) are in fact necessary may result in DVB devices that cannot be tuned due
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) to lack of driver support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) If your goal is to just support an specific board, you may, instead,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) disable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) required by your board. With that, you can save some RAM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) You can do that by calling make xconfig/qconfig/menuconfig and look at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) the options on those menu options (only enabled if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) ``Autoselect ancillary drivers`` is disabled:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #) ``Device drivers`` => ``Multimedia support`` => ``Customize TV tuners``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #) ``Device drivers`` => ``Multimedia support`` => ``Customize DVB frontends``
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) Then, on each of the above menu, please select your card-specific
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) frontend and tuner modules.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) Loading Modules
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) ---------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) Regular case: If the bttv driver detects a bt8xx-based DVB card, all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) frontend and backend modules will be loaded automatically.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) Exceptions are:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) - Old TV cards without EEPROMs, sharing a common PCI subsystem ID;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - Old TwinHan DST cards or clones with or without CA slot and not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) containing an Eeprom.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) In the following cases overriding the PCI type detection for bttv and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) for dvb-bt8xx drivers by passing modprobe parameters may be necessary.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) Running TwinHan and Clones
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) ~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) As shown at :doc:`bttv-cardlist`, TwinHan and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) clones use ``card=113`` modprobe parameter. So, in order to properly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) detect it for devices without EEPROM, you should use::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) $ modprobe bttv card=113
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) $ modprobe dst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) Useful parameters for verbosity level and debugging the dst module::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) verbose=0: messages are disabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) 1: only error messages are displayed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) 2: notifications are displayed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) 3: other useful messages are displayed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) 4: debug setting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) dst_addons=0: card is a free to air (FTA) card only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) 0x20: card has a conditional access slot for scrambled channels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) dst_algo=0: (default) Software tuning algorithm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 1: Hardware tuning algorithm
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) The autodetected values are determined by the cards' "response string".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) For bug reports please send in a complete log with verbose=4 activated.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) Please also see :doc:`ci`.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) Running multiple cards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) ~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) See :doc:`bttv-cardlist` for a complete list of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) Card ID. Some examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) =========================== ===
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) Brand name ID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) =========================== ===
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) Pinnacle PCTV Sat 94
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) Nebula Electronics Digi TV 104
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) pcHDTV HD-2000 TV 112
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) Twinhan DST and clones 113
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) Avermedia AverTV DVB-T 77: 123
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) Avermedia AverTV DVB-T 761 124
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) DViCO FusionHDTV DVB-T Lite 128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) DViCO FusionHDTV 5 Lite 135
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) =========================== ===
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) .. note::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) When you have multiple cards, the order of the card ID should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) match the order where they're detected by the system. Please notice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) that removing/inserting other PCI cards may change the detection
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) order.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) Example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) $ modprobe bttv card=113 card=135
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) In case of further problems please subscribe and send questions to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) the mailing list: linux-media@vger.kernel.org.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) Probing the cards with broken PCI subsystem ID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) There are some TwinHan cards whose EEPROM has become corrupted for some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) reason. The cards do not have a correct PCI subsystem ID.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) Still, it is possible to force probing the cards with::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) $ echo 109e 0878 $subvendor $subdevice > \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) /sys/bus/pci/drivers/bt878/new_id
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) The two numbers there are::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) 109e: PCI_VENDOR_ID_BROOKTREE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) 0878: PCI_DEVICE_ID_BROOKTREE_878