• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

CARDLISTD01-Feb-20106 KiB156154

CONTRIBUTORSD01-Feb-2010497 2614

CardsD01-Feb-201026.1 KiB962794

ICsD01-Feb-2010896 3822

Insmod-optionsD01-Feb-20105.8 KiB168145

MAKEDEVD01-Feb-2010543 2915

Modules.confD01-Feb-2010212 127

PROBLEMSD01-Feb-20102.6 KiB6343

READMED01-Feb-20105.7 KiB150110

README.WINVIEWD01-Feb-20101.5 KiB3424

README.freezeD01-Feb-20102.9 KiB7554

README.quirksD01-Feb-20103.7 KiB8465

Sound-FAQD01-Feb-20105.8 KiB149110

SpecsD01-Feb-2010169 43

THANKSD01-Feb-2010834 2515

TunersD01-Feb-20103.1 KiB116104

README

1
2IMPORTANT:  Don't send me mails with images attached unless I ask you
3to do so.  Mails with images attached will go to /dev/null unseen.
4
5
6Release notes for bttv-0.7.x
7============================
8
9This version is based on Ralphs 0.6.4 release.  There are alot of
10changes.  Bugfixes, merged patches from other people, merged fixes
11from the kernel version, port to the new i2c stack, removed support
12for 2.0.x, code cleanups, ...
13
14To compile this bttv version, you'll the new i2c stack.  Kernels
15newer than 2.3.34 have this already included.  If you have a older
16kernel, download it from:
17	http://www.lm-sensors.org/wiki/Download
18
19You'll need at least these config options for bttv:
20CONFIG_I2C=m
21CONFIG_I2C_ALGOBIT=m
22CONFIG_VIDEO_DEV=m
23
24The latest bttv version is available from http://bytesex.org/bttv/
25
26You'll find Ralphs original (mostly outdated) documentation in the
27ralphs-doc subdirectory.
28
29
30Compile bttv
31------------
32
33If you are compiling the kernel version, just say 'm' if you are asked
34for bttv.  I /strongly/ recommend to compile bttv as module, because
35there are some insmod options for configuring the driver.  Starting
36with 0.7.49 the most important ones are available as kernel args too.
37
38If you downloaded the separate bttv bundle:  You need configured kernel
39sources to compile the bttv driver.  The driver uses some Makefile
40magic to compile the modules with your kernel's configuration
41(wrt. module-versions, SMP, ...).  If you already have compiled the
42kernel at least once, you probably don't have do worry about this.  If
43not, go to /usr/src/linux and run at least "make config".  Even
44better, compile your own kernel, you'll never become a real hacker
45else ;-)
46Note that you have to turn on video4linux support (CONFIG_VIDEO_DEV)
47in the kernel to get the videodev.o module which is required by bttv.
48
49
50Make bttv work with your card
51-----------------------------
52
53Setup your /etc/modules.conf file and let kmod load the modules.
54See also:
55
56Modules.conf:	some sample entries for /etc/modules.conf
57Insmod-options:	list of all insmod options available for bttv and
58		the helper modules.
59MAKEDEV:	a script to create the special files for v4l
60CARDLIST:	List of all supported cards
61Cards:		more detailed descriptions of known TV cards:
62		OEM name variants, used i2c chips, ...
63		also includes non-bttv cards.
64
65Loading just the bttv modules isn't enouth for most cards.  The
66drivers for the i2c tuner/sound chips must also be loaded.  bttv tries
67to load them automagically by calling request_module() now, but this
68obviously works only with kmod enabled.
69
70If bttv takes very long to load (happens sometimes with the cheap
71cards which have no tuner), try adding this to your modules.conf:
72	options i2c-algo-bit bit_test=1
73
74The most important insmod option for bttv is "card=n" to select the
75correct card type in case the autodetection does'nt work. If you get
76video but no sound you've very likely specified the wrong (or no)
77card type.  A list of supported cards is in CARDLIST.
78
79For the WinTV/PVR you need one firmware file from the driver CD:
80hcwamc.rbf.  The file is in the pvr45xxx.exe archive (self-extracting
81zip file, unzip can unpack it).  Put it into the /etc/pvr directory or
82use the firm_altera=<path> insmod option to point the driver to the
83location of the file.
84
85If your card isn't listed in CARDLIST or if you have trouble making
86audio work, you should read the Sound-FAQ.
87
88
89Autodetecting cards
90-------------------
91
92bttv uses the PCI Subsystem ID to autodetect the card type.  lspci lists
93the Subsystem ID in the second line, looks like this:
94
9500:0a.0 Multimedia video controller: Brooktree Corporation Bt878 (rev 02)
96        Subsystem: Hauppauge computer works Inc. WinTV/GO
97        Flags: bus master, medium devsel, latency 32, IRQ 5
98        Memory at e2000000 (32-bit, prefetchable) [size=4K]
99
100only bt878-based cards can have a subsystem ID (which does not mean
101that every card really has one).  bt848 cards can't have a Subsystem
102ID and therefore can't be autodetected.  There is a list with the ID's
103in bttv-cards.c (in case you are intrested or want to mail patches
104with updates).
105
106Old driver versions used to have a heuristic which could identify some
107bt848-based cards.  It worked for Hauppauge and Miro cards in most
108cases (simply because these where the first cards available on the
109market), but misdetected other bt848 cards.  That code is gone now for
110exactly this reason, the misdetection confused lots of people.  If you
111have a old Hauppauge or Miro card, you'll have to load the driver with
112card=1 or card=2 these days.
113
114
115Still doesn't work?
116-------------------
117
118I do NOT have a lab with 30+ different grabber boards and a
119PAL/NTSC/SECAM test signal generator at home, so I often can't
120reproduce your problems.  This makes debugging very difficult for me.
121If you have some knowledge and spare time, please try to fix this
122yourself (patches very welcome of course...)  You know: The linux
123slogan is "Do it yourself".
124
125There is a mailing list: video4linux-list@redhat.com.
126https://listman.redhat.com/mailman/listinfo/video4linux-list
127
128If you have trouble with some specific TV card, try to ask there
129instead of mailing me directly.  The chance that someone with the
130same card listens there is much higher...
131
132For problems with sound:  There are alot of different systems used
133for TV sound all over the world.  And there are also different chips
134which decode the audio signal.  Reports about sound problems ("stereo
135does'nt work") are pretty useless unless you include some details
136about your hardware and the TV sound scheme used in your country (or
137at least the country you are living in).
138
139
140Finally: If you mail some patches for bttv around the world (to
141linux-kernel/Alan/Linus/...), please Cc: me.
142
143
144Have fun with bttv,
145
146  Gerd
147
148--
149Gerd Knorr <kraxel@goldbach.in-berlin.de>
150

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

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).  ksymoops
31will translate these dumps into kernel symbols too.  This way it is
32possible to figure where *exactly* some process in "D" state 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 alot 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