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