README
1
2Release notes for bttv
3======================
4
5You'll need at least these config options for bttv:
6 CONFIG_I2C=m
7 CONFIG_I2C_ALGOBIT=m
8 CONFIG_VIDEO_DEV=m
9
10The latest bttv version is available from http://bytesex.org/bttv/
11
12
13Make bttv work with your card
14-----------------------------
15
16Just try "modprobe bttv" and see if that works.
17
18If it doesn't bttv likely could not autodetect your card and needs some
19insmod options. The most important insmod option for bttv is "card=n"
20to select the correct card type. If you get video but no sound you've
21very likely specified the wrong (or no) card type. A list of supported
22cards is in CARDLIST.bttv
23
24If bttv takes very long to load (happens sometimes with the cheap
25cards which have no tuner), try adding this to your modules.conf:
26 options i2c-algo-bit bit_test=1
27
28For the WinTV/PVR you need one firmware file from the driver CD:
29hcwamc.rbf. The file is in the pvr45xxx.exe archive (self-extracting
30zip file, unzip can unpack it). Put it into the /etc/pvr directory or
31use the firm_altera=<path> insmod option to point the driver to the
32location of the file.
33
34If your card isn't listed in CARDLIST.bttv or if you have trouble making
35audio work, you should read the Sound-FAQ.
36
37
38Autodetecting cards
39-------------------
40
41bttv uses the PCI Subsystem ID to autodetect the card type. lspci lists
42the Subsystem ID in the second line, looks like this:
43
4400:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
45 Subsystem: Hauppauge computer works Inc. WinTV/GO
46 Flags: bus master, medium devsel, latency 32, IRQ 5
47 Memory at e2000000 (32-bit, prefetchable) [size=4K]
48
49only bt878-based cards can have a subsystem ID (which does not mean
50that every card really has one). bt848 cards can't have a Subsystem
51ID and therefore can't be autodetected. There is a list with the ID's
52in bttv-cards.c (in case you are intrested or want to mail patches
53with updates).
54
55
56Still doesn't work?
57-------------------
58
59I do NOT have a lab with 30+ different grabber boards and a
60PAL/NTSC/SECAM test signal generator at home, so I often can't
61reproduce your problems. This makes debugging very difficult for me.
62If you have some knowledge and spare time, please try to fix this
63yourself (patches very welcome of course...) You know: The linux
64slogan is "Do it yourself".
65
66There is a mailing list: linux-media@vger.kernel.org
67http://vger.kernel.org/vger-lists.html#linux-media
68
69If you have trouble with some specific TV card, try to ask there
70instead of mailing me directly. The chance that someone with the
71same card listens there is much higher...
72
73For problems with sound: There are a lot of different systems used
74for TV sound all over the world. And there are also different chips
75which decode the audio signal. Reports about sound problems ("stereo
76does'nt work") are pretty useless unless you include some details
77about your hardware and the TV sound scheme used in your country (or
78at least the country you are living in).
79
80
81Finally: If you mail some patches for bttv around the world (to
82linux-kernel/Alan/Linus/...), please Cc: me.
83
84
85Have fun with bttv,
86
87 Gerd
88
89--
90Gerd Knorr <kraxel@bytesex.org>
91
README.freeze
1
2If the box freezes hard with bttv ...
3=====================================
4
5It might be a bttv driver bug. It also might be bad hardware. It also
6might be something else ...
7
8Just mailing me "bttv freezes" isn't going to help much. This README
9has a few hints how you can help to pin down the problem.
10
11
12bttv bugs
13---------
14
15If some version works and another doesn't it is likely to be a driver
16bug. It is very helpful if you can tell where exactly it broke
17(i.e. the last working and the first broken version).
18
19With a hard freeze you probably doesn't find anything in the logfiles.
20The only way to capture any kernel messages is to hook up a serial
21console and let some terminal application log the messages. /me uses
22screen. See Documentation/serial-console.txt for details on setting
23up a serial console.
24
25Read Documentation/oops-tracing.txt to learn how to get any useful
26information out of a register+stack dump printed by the kernel on
27protection faults (so-called "kernel oops").
28
29If you run into some kind of deadlock, you can try to dump a call trace
30for each process using sysrq-t (see Documentation/sysrq.txt).
31This way it is possible to figure where *exactly* some process in "D"
32state is stuck.
33
34I've seen reports that bttv 0.7.x crashes whereas 0.8.x works rock solid
35for some people. Thus probably a small buglet left somewhere in bttv
360.7.x. I have no idea where exactly, it works stable for me and a lot of
37other people. But in case you have problems with the 0.7.x versions you
38can give 0.8.x a try ...
39
40
41hardware bugs
42-------------
43
44Some hardware can't deal with PCI-PCI transfers (i.e. grabber => vga).
45Sometimes problems show up with bttv just because of the high load on
46the PCI bus. The bt848/878 chips have a few workarounds for known
47incompatibilities, see README.quirks.
48
49Some folks report that increasing the pci latency helps too,
50althrought I'm not sure whenever this really fixes the problems or
51only makes it less likely to happen. Both bttv and btaudio have a
52insmod option to set the PCI latency of the device.
53
54Some mainboard have problems to deal correctly with multiple devices
55doing DMA at the same time. bttv + ide seems to cause this sometimes,
56if this is the case you likely see freezes only with video and hard disk
57access at the same time. Updating the IDE driver to get the latest and
58greatest workarounds for hardware bugs might fix these problems.
59
60
61other
62-----
63
64If you use some binary-only yunk (like nvidia module) try to reproduce
65the problem without.
66
67IRQ sharing is known to cause problems in some cases. It works just
68fine in theory and many configurations. Neverless it might be worth a
69try to shuffle around the PCI cards to give bttv another IRQ or make
70it share the IRQ with some other piece of hardware. IRQ sharing with
71VGA cards seems to cause trouble sometimes. I've also seen funny
72effects with bttv sharing the IRQ with the ACPI bridge (and
73apci-enabled kernel).
74
75
README.quirks
1
2Below is what the bt878 data book says about the PCI bug compatibility
3modes of the bt878 chip.
4
5The triton1 insmod option sets the EN_TBFX bit in the control register.
6The vsfx insmod option does the same for EN_VSFX bit. If you have
7stability problems you can try if one of these options makes your box
8work solid.
9
10drivers/pci/quirks.c knows about these issues, this way these bits are
11enabled automagically for known-buggy chipsets (look at the kernel
12messages, bttv tells you).
13
14HTH,
15
16 Gerd
17
18---------------------------- cut here --------------------------
19
20Normal PCI Mode
21---------------
22
23The PCI REQ signal is the logical-or of the incoming function requests.
24The inter-nal GNT[0:1] signals are gated asynchronously with GNT and
25demultiplexed by the audio request signal. Thus the arbiter defaults to
26the video function at power-up and parks there during no requests for
27bus access. This is desirable since the video will request the bus more
28often. However, the audio will have highest bus access priority. Thus
29the audio will have first access to the bus even when issuing a request
30after the video request but before the PCI external arbiter has granted
31access to the Bt879. Neither function can preempt the other once on the
32bus. The duration to empty the entire video PCI FIFO onto the PCI bus is
33very short compared to the bus access latency the audio PCI FIFO can
34tolerate.
35
36
37430FX Compatibility Mode
38------------------------
39
40When using the 430FX PCI, the following rules will ensure
41compatibility:
42
43 (1) Deassert REQ at the same time as asserting FRAME.
44 (2) Do not reassert REQ to request another bus transaction until after
45 finish-ing the previous transaction.
46
47Since the individual bus masters do not have direct control of REQ, a
48simple logical-or of video and audio requests would violate the rules.
49Thus, both the arbiter and the initiator contain 430FX compatibility
50mode logic. To enable 430FX mode, set the EN_TBFX bit as indicated in
51Device Control Register on page 104.
52
53When EN_TBFX is enabled, the arbiter ensures that the two compatibility
54rules are satisfied. Before GNT is asserted by the PCI arbiter, this
55internal arbiter may still logical-or the two requests. However, once
56the GNT is issued, this arbiter must lock in its decision and now route
57only the granted request to the REQ pin. The arbiter decision lock
58happens regardless of the state of FRAME because it does not know when
59FRAME will be asserted (typically - each initiator will assert FRAME on
60the cycle following GNT). When FRAME is asserted, it is the initiator s
61responsibility to remove its request at the same time. It is the
62arbiters responsibility to allow this request to flow through to REQ and
63not allow the other request to hold REQ asserted. The decision lock may
64be removed at the end of the transaction: for example, when the bus is
65idle (FRAME and IRDY). The arbiter decision may then continue
66asynchronously until GNT is again asserted.
67
68
69Interfacing with Non-PCI 2.1 Compliant Core Logic
70-------------------------------------------------
71
72A small percentage of core logic devices may start a bus transaction
73during the same cycle that GNT is de-asserted. This is non PCI 2.1
74compliant. To ensure compatibility when using PCs with these PCI
75controllers, the EN_VSFX bit must be enabled (refer to Device Control
76Register on page 104). When in this mode, the arbiter does not pass GNT
77to the internal functions unless REQ is asserted. This prevents a bus
78transaction from starting the same cycle as GNT is de-asserted. This
79also has the side effect of not being able to take advantage of bus
80parking, thus lowering arbitration performance. The Bt879 drivers must
81query for these non-compliant devices, and set the EN_VSFX bit only if
82required.
83
84
README.WINVIEW
1
2Support for the Leadtek WinView 601 TV/FM by Jon Tombs <jon@gte.esi.us.es>
3
4This card is basically the same as all the rest (Bt484A, Philips tuner),
5the main difference is that they have attached a programmable attenuator to 3
6GPIO lines in order to give some volume control. They have also stuck an
7infra-red remote control decoded on the board, I will add support for this
8when I get time (it simple generates an interrupt for each key press, with
9the key code is placed in the GPIO port).
10
11I don't yet have any application to test the radio support. The tuner
12frequency setting should work but it is possible that the audio multiplexer
13is wrong. If it doesn't work, send me email.
14
15
16- No Thanks to Leadtek they refused to answer any questions about their
17hardware. The driver was written by visual inspection of the card. If you
18use this driver, send an email insult to them, and tell them you won't
19continue buying their hardware unless they support Linux.
20
21- Little thanks to Princeton Technology Corp (http://www.princeton.com.tw)
22who make the audio attenuator. Their publicly available data-sheet available
23on their web site doesn't include the chip programming information! Hidden
24on their server are the full data-sheets, but don't ask how I found it.
25
26To use the driver I use the following options, the tuner and pll settings might
27be different in your country
28
29insmod videodev
30insmod i2c scan=1 i2c_debug=0 verbose=0
31insmod tuner type=1 debug=0
32insmod bttv pll=1 radio=1 card=17
33
34