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