xref: /linux/Documentation/admin-guide/media/bt8xx.rst (revision f631516f6d7d87fc006a8f51348fa84022a58d12)
132e2eae2SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
232e2eae2SMauro Carvalho Chehab
3*f631516fSMauro Carvalho Chehab==================================
432e2eae2SMauro Carvalho ChehabHow to get the bt8xx cards working
532e2eae2SMauro Carvalho Chehab==================================
632e2eae2SMauro Carvalho Chehab
7*f631516fSMauro Carvalho ChehabAuthors:
8*f631516fSMauro 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
1832e2eae2SMauro Carvalho ChehabThis class of cards has a bt878a as the PCI interface, and require the bttv driver
1932e2eae2SMauro Carvalho Chehabfor accessing the i2c bus and the gpio pins of the bt8xx chipset.
2032e2eae2SMauro Carvalho Chehab
21*f631516fSMauro Carvalho ChehabPlease see :doc:`cards` for a complete list of Cards based on the
22*f631516fSMauro Carvalho ChehabConexant Bt8xx PCI bridge supported by the Linux Kernel.
2332e2eae2SMauro Carvalho Chehab
24*f631516fSMauro Carvalho ChehabIn order to be able to compile the kernel, some config options should be
25*f631516fSMauro Carvalho Chehabenabled::
2632e2eae2SMauro Carvalho Chehab
27*f631516fSMauro Carvalho Chehab    ./scripts/config -e PCI
28*f631516fSMauro Carvalho Chehab    ./scripts/config -e INPUT
29*f631516fSMauro Carvalho Chehab    ./scripts/config -m I2C
30*f631516fSMauro Carvalho Chehab    ./scripts/config -m MEDIA_SUPPORT
31*f631516fSMauro Carvalho Chehab    ./scripts/config -e MEDIA_PCI_SUPPORT
32*f631516fSMauro Carvalho Chehab    ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
33*f631516fSMauro Carvalho Chehab    ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
34*f631516fSMauro Carvalho Chehab    ./scripts/config -e MEDIA_RADIO_SUPPORT
35*f631516fSMauro Carvalho Chehab    ./scripts/config -e RC_CORE
36*f631516fSMauro Carvalho Chehab    ./scripts/config -m VIDEO_BT848
37*f631516fSMauro Carvalho Chehab    ./scripts/config -m DVB_BT8XX
3832e2eae2SMauro Carvalho Chehab
39*f631516fSMauro Carvalho ChehabIf you want to automatically support all possible variants of the Bt8xx
40*f631516fSMauro Carvalho Chehabcards, you should also do::
4132e2eae2SMauro Carvalho Chehab
42*f631516fSMauro Carvalho Chehab    ./scripts/config -e MEDIA_SUBDRV_AUTOSELECT
4332e2eae2SMauro Carvalho Chehab
44*f631516fSMauro Carvalho Chehab.. note::
4532e2eae2SMauro Carvalho Chehab
46*f631516fSMauro Carvalho Chehab   Please use the following options with care as deselection of drivers which
47*f631516fSMauro Carvalho Chehab   are in fact necessary may result in DVB devices that cannot be tuned due
48*f631516fSMauro Carvalho Chehab   to lack of driver support.
4932e2eae2SMauro Carvalho Chehab
50*f631516fSMauro Carvalho ChehabIf your goal is to just support an specific board, you may, instead,
51*f631516fSMauro Carvalho Chehabdisable MEDIA_SUBDRV_AUTOSELECT and manually select the frontend drivers
52*f631516fSMauro Carvalho Chehabrequired by your board. With that, you can save some RAM.
53*f631516fSMauro Carvalho Chehab
54*f631516fSMauro Carvalho ChehabYou can do that by calling make xconfig/qconfig/menuconfig and look at
55*f631516fSMauro Carvalho Chehabthe options on those menu options (only enabled if
56*f631516fSMauro Carvalho Chehab``Autoselect ancillary drivers`` is disabled:
57*f631516fSMauro Carvalho Chehab
58*f631516fSMauro Carvalho Chehab#) ``Device drivers`` => ``Multimedia support`` => ``Customize TV tuners``
59*f631516fSMauro Carvalho Chehab#) ``Device drivers`` => ``Multimedia support`` => ``Customize DVB frontends``
60*f631516fSMauro Carvalho Chehab
61*f631516fSMauro Carvalho ChehabThen, on each of the above menu, please select your card-specific
62*f631516fSMauro Carvalho Chehabfrontend and tuner modules.
63*f631516fSMauro Carvalho Chehab
6432e2eae2SMauro Carvalho Chehab
6532e2eae2SMauro Carvalho ChehabLoading Modules
6632e2eae2SMauro Carvalho Chehab---------------
6732e2eae2SMauro Carvalho Chehab
68*f631516fSMauro Carvalho ChehabRegular case: If the bttv driver detects a bt8xx-based DVB card, all
69*f631516fSMauro Carvalho Chehabfrontend and backend modules will be loaded automatically.
7032e2eae2SMauro Carvalho Chehab
71*f631516fSMauro Carvalho ChehabExceptions are:
72*f631516fSMauro Carvalho Chehab
73*f631516fSMauro Carvalho Chehab- Old TV cards without EEPROMs, sharing a common PCI ID;
74*f631516fSMauro Carvalho Chehab- Old TwinHan DST cards or clones with or without CA slot and not
75*f631516fSMauro Carvalho Chehab  containing an Eeprom.
76*f631516fSMauro Carvalho Chehab
77*f631516fSMauro Carvalho ChehabPeople running udev please see :doc:`udev`.
78*f631516fSMauro Carvalho Chehab
79*f631516fSMauro Carvalho ChehabIn the following cases overriding the PCI type detection for bttv and
80*f631516fSMauro Carvalho Chehabfor dvb-bt8xx drivers by passing modprobe parameters may be necessary.
8132e2eae2SMauro Carvalho Chehab
8232e2eae2SMauro Carvalho ChehabRunning TwinHan and Clones
8332e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~
8432e2eae2SMauro Carvalho Chehab
85*f631516fSMauro Carvalho ChehabAs shown at :doc:`bttv-cardlist`, TwinHan and
86*f631516fSMauro Carvalho Chehabclones use ``card=113`` modprobe parameter. So, in order to properly
87*f631516fSMauro Carvalho Chehabdetect it for devices without EEPROM, you should use::
8832e2eae2SMauro Carvalho Chehab
8932e2eae2SMauro Carvalho Chehab	$ modprobe bttv card=113
9032e2eae2SMauro Carvalho Chehab	$ modprobe dst
9132e2eae2SMauro Carvalho Chehab
92*f631516fSMauro Carvalho ChehabUseful parameters for verbosity level and debugging the dst module::
9332e2eae2SMauro Carvalho Chehab
9432e2eae2SMauro Carvalho Chehab	verbose=0:		messages are disabled
9532e2eae2SMauro Carvalho Chehab		1:		only error messages are displayed
9632e2eae2SMauro Carvalho Chehab		2:		notifications are displayed
9732e2eae2SMauro Carvalho Chehab		3:		other useful messages are displayed
9832e2eae2SMauro Carvalho Chehab		4:		debug setting
9932e2eae2SMauro Carvalho Chehab	dst_addons=0:		card is a free to air (FTA) card only
10032e2eae2SMauro Carvalho Chehab		0x20:	card has a conditional access slot for scrambled channels
101*f631516fSMauro Carvalho Chehab	dst_algo=0:		(default) Software tuning algorithm
102*f631516fSMauro Carvalho Chehab	         1:		Hardware tuning algorithm
103*f631516fSMauro Carvalho Chehab
10432e2eae2SMauro Carvalho Chehab
10532e2eae2SMauro Carvalho ChehabThe autodetected values are determined by the cards' "response string".
106*f631516fSMauro Carvalho Chehab
10732e2eae2SMauro Carvalho ChehabIn your logs see f. ex.: dst_get_device_id: Recognize [DSTMCI].
108*f631516fSMauro Carvalho Chehab
10932e2eae2SMauro Carvalho ChehabFor bug reports please send in a complete log with verbose=4 activated.
110*f631516fSMauro Carvalho ChehabPlease also see :doc:`ci`.
11132e2eae2SMauro Carvalho Chehab
11232e2eae2SMauro Carvalho ChehabRunning multiple cards
11332e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~
11432e2eae2SMauro Carvalho Chehab
115*f631516fSMauro Carvalho ChehabSee :doc:`bttv-cardlist` for a complete list of
116*f631516fSMauro Carvalho ChehabCard ID. Some examples:
11732e2eae2SMauro Carvalho Chehab
118*f631516fSMauro Carvalho Chehab	===========================	===
119*f631516fSMauro Carvalho Chehab	Brand name			ID
120*f631516fSMauro Carvalho Chehab	===========================	===
121*f631516fSMauro Carvalho Chehab	Pinnacle PCTV Sat		 94
122*f631516fSMauro Carvalho Chehab	Nebula Electronics Digi TV	104
123*f631516fSMauro Carvalho Chehab	pcHDTV HD-2000 TV		112
124*f631516fSMauro Carvalho Chehab	Twinhan DST and clones		113
125*f631516fSMauro Carvalho Chehab	Avermedia AverTV DVB-T 77:	123
126*f631516fSMauro Carvalho Chehab	Avermedia AverTV DVB-T 761	124
127*f631516fSMauro Carvalho Chehab	DViCO FusionHDTV DVB-T Lite	128
128*f631516fSMauro Carvalho Chehab	DViCO FusionHDTV 5 Lite		135
129*f631516fSMauro Carvalho Chehab	===========================	===
13032e2eae2SMauro Carvalho Chehab
13132e2eae2SMauro Carvalho Chehab.. note::
13232e2eae2SMauro Carvalho Chehab
133*f631516fSMauro Carvalho Chehab   When you have multiple cards, the order of the card ID should
134*f631516fSMauro Carvalho Chehab   match the order where they're detected by the system. Please notice
135*f631516fSMauro Carvalho Chehab   that removing/inserting other PCI cards may change the detection
136*f631516fSMauro Carvalho Chehab   order.
13732e2eae2SMauro Carvalho Chehab
138*f631516fSMauro Carvalho ChehabExample::
13932e2eae2SMauro Carvalho Chehab
14032e2eae2SMauro Carvalho Chehab	$ modprobe bttv card=113 card=135
14132e2eae2SMauro Carvalho Chehab
142*f631516fSMauro Carvalho ChehabIn case of further problems please subscribe and send questions to
143*f631516fSMauro Carvalho Chehabthe mailing list: linux-media@vger.kernel.org.
14432e2eae2SMauro Carvalho Chehab
14532e2eae2SMauro Carvalho ChehabProbing the cards with broken PCI subsystem ID
14632e2eae2SMauro Carvalho Chehab~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14732e2eae2SMauro Carvalho Chehab
148*f631516fSMauro Carvalho ChehabThere are some TwinHan cards whose EEPROM has become corrupted for some
149*f631516fSMauro Carvalho Chehabreason. The cards do not have a correct PCI subsystem ID.
150*f631516fSMauro Carvalho ChehabStill, it is possible to force probing the cards with::
15132e2eae2SMauro Carvalho Chehab
15232e2eae2SMauro Carvalho Chehab	$ echo 109e 0878 $subvendor $subdevice > \
15332e2eae2SMauro Carvalho Chehab		/sys/bus/pci/drivers/bt878/new_id
15432e2eae2SMauro Carvalho Chehab
155*f631516fSMauro Carvalho ChehabThe two numbers there are::
15632e2eae2SMauro Carvalho Chehab
15732e2eae2SMauro Carvalho Chehab	109e: PCI_VENDOR_ID_BROOKTREE
15832e2eae2SMauro Carvalho Chehab	0878: PCI_DEVICE_ID_BROOKTREE_878
159