1.. SPDX-License-Identifier: GPL-2.0
2
3==================================
4How to get the bt8xx cards working
5==================================
6
7Authors:
8	 Richard Walker,
9	 Jamie Honan,
10	 Michael Hunold,
11	 Manu Abraham,
12	 Uwe Bugla,
13	 Michael Krufky
14
15General information
16-------------------
17
18This class of cards has a bt878a as the PCI interface, and require the bttv driver
19for accessing the i2c bus and the gpio pins of the bt8xx chipset.
20
21Please see :doc:`bttv-cardlist` for a complete list of Cards based on the
22Conexant Bt8xx PCI bridge supported by the Linux Kernel.
23
24In order to be able to compile the kernel, some config options should be
25enabled::
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
39If you want to automatically support all possible variants of the Bt8xx
40cards, 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
50If your goal is to just support an specific board, you may, instead,
51disable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers
52required by your board. With that, you can save some RAM.
53
54You can do that by calling make xconfig/qconfig/menuconfig and look at
55the 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
61Then, on each of the above menu, please select your card-specific
62frontend and tuner modules.
63
64
65Loading Modules
66---------------
67
68Regular case: If the bttv driver detects a bt8xx-based DVB card, all
69frontend and backend modules will be loaded automatically.
70
71Exceptions 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
77In the following cases overriding the PCI type detection for bttv and
78for dvb-bt8xx drivers by passing modprobe parameters may be necessary.
79
80Running TwinHan and Clones
81~~~~~~~~~~~~~~~~~~~~~~~~~~
82
83As shown at :doc:`bttv-cardlist`, TwinHan and
84clones use ``card=113`` modprobe parameter. So, in order to properly
85detect it for devices without EEPROM, you should use::
86
87	$ modprobe bttv card=113
88	$ modprobe dst
89
90Useful 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
103The autodetected values are determined by the cards' "response string".
104
105In your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
106
107For bug reports please send in a complete log with verbose=4 activated.
108Please also see :doc:`ci`.
109
110Running multiple cards
111~~~~~~~~~~~~~~~~~~~~~~
112
113See :doc:`bttv-cardlist` for a complete list of
114Card 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
136Example::
137
138	$ modprobe bttv card=113 card=135
139
140In case of further problems please subscribe and send questions to
141the mailing list: linux-media@vger.kernel.org.
142
143Probing the cards with broken PCI subsystem ID
144~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145
146There are some TwinHan cards whose EEPROM has become corrupted for some
147reason. The cards do not have a correct PCI subsystem ID.
148Still, 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
153The two numbers there are::
154
155	109e: PCI_VENDOR_ID_BROOKTREE
156	0878: PCI_DEVICE_ID_BROOKTREE_878
157