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