root/lm-sensors/branches/lm-sensors-2.10/doc/chips/bt869

Revision 3007, 15.3 KB (checked in by khali, 7 years ago)

Backport the cleanups and corrections Rudolf Marek and I did when
porting the chips documentation to Linux 2.6.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1Kernel driver `bt869.o'
2======================
3
4Status: 'Beta' and needs further development and testing
5
6Supported chips:
7  * Brooktree BT869 Video Modulator chips
8    Prefix: 'bt869'
9    Addresses scanned: I2C 0x44 - 0x45
10    Datasheet: Publicly available at the brooktree web site
11    (www.brooktree.com)
12
13Author: Frodo Looijaard <frodol@dds.nl>, Philip Edelbrock
14        <phil@netroedge.com>, Ralph Metzler <rjkm@thp.uni-koeln.de>
15        Steve Davies <steve@daviesfam.org> added the 720x576 and
16        720x480 support, and the svideo configuration.
17
18Main Contact: Philip Edelbrock <phil@netroedge.com>
19
20Module Parameters
21-----------------
22* force: short array (min = 1, max = 48)
23  List of adapter,address pairs to boldly assume to be present
24* force_bt869: short array (min = 1, max = 48)
25  List of adapter,address pairs which are unquestionably assumed to contain
26  a `bt869' chip
27* ignore: short array (min = 1, max = 48)
28  List of adapter,address pairs not to scan
29* ignore_range: short array (min = 1, max = 48)
30  List of adapter,start-addr,end-addr triples not to scan
31* probe: short array (min = 1, max = 48)
32  List of adapter,address pairs to scan additionally
33* probe_range: short array (min = 1, max = 48)
34  List of adapter,start-addr,end-addr triples to scan additionally
35
36
37Description
38-----------
39
40This driver provides some access to the Brooktree bt869 found on some
41video cards (like the 'Voodoo3 3000').  Typically, the output can be
42either an s-video connection or composite video.  Resolutions
43supported using the chip's built in configurations are 640x480 or
44800x600.  In addition, a 720x576 PAL mode and a 720x480 NTSC mode,
45both without overscan compensation, are supported - a convenient
46configuration for video playback.
47
48Other possible implementations may allow for double resolutions with some
49decimations (e.g., a monitor running at 1280x960 but the TV out getting every
50other pixel for 640x480).
51
52
53Driver Features
54---------------
55Standards: (US) NTSC or PAL
56Resolutions: 640x480, 800x600, 720x576 (PAL only), 720x480 (NTSC only)
57Depths: 16, 24 or 32 bits
58Colorbars: Switch on the built-in color bar generator. (FYI- using a blue
59filter, you should see only alternating bright stripes of equal brightness.
60Adjust your TV's color and saturation if this isn't the case.)
61SVideo: composite or s-video output.  Also, theoretically, RGB output, though
62this isn't tested and will require that your card presents all three DAC outputs
63(the 3dfx Voodoo3 doesn't)
64
65In your XF86Config file, you should have these entries for NTSC output:
66
67ModeLine "640x480NTSC"  28.195793   640  656  658  784   480  520  525  600
68ModeLine "720x480NTSC"  27.5        720  744  800  872   480  483  485  525
69ModeLine "800x600NTSC"  38.769241   800  812  814  880   600  646  649  735
70
71or for PAL
72
73ModeLine "640x480PAL"   29.50       640  675  678  944   480  530  535  625
74ModeLine "720x576PAL"   27.50       720  744  800  880   576  581  583  625
75ModeLine "800x600PAL"   36.00       800  818  820  960   600  653  655  750
76
77Also, don't forget to add these modes to the resolutions list in the
78'screen' sections of XF86Config.  You can change modes on the fly in X by
79pressing (usually) ctrl-alt-+ or ctrl-alt-(minus)  with + and - being the
80keys on your numeric 10-key pad.
81
82BTW- My monitor doesn't like these entries very much, and as I've read:
83don't run your monitor out of spec or else it will burst into fire.  So,
84having the monitor turned on while in any of these modes is at your own
85risk.  (I've never heard of a monitor breaking from this, but it seems to
86be fashionable to warn about it.)
87
88
89Chip Features
90-------------
91The chip is very flexible and customizable for many standards.  Right
92now the driver sticks with the chip's built in NTSC and PAL standards,
93with the addition of the 720x576PAL and 720x480NTSC modes.  It also
94does some other wacky stuff like closed-captioning, Macro-vision
95copy-protection, and other things.  Check out the datasheet for more
96info.
97
98
99Issues
100------
101The depth register doesn't seem to do much?  If you have troubles or
102aren't sure the output is working, turn the color-bars on.  If they display
103OK, then the chip is syncing correctly.  The next thing to try is the depth
104setting.  Lastly, turning off your computer and back on with your TV
105connected but you monitor not, may force the video card to configure and
106use the BT869 as your primary output device (all bets are off once X is
107started).  Let me know if you have problems which you can't figure out
108(phil@netroedge.com).
109
110--------------------------------
111
112On May 3rd, 2001 (My birthday, as it happens to be :') Tomi Ollila sent me
113a how-to from a user's perspective on using the BT869 with a 3Dfx card.
114It should also provide insight for other video card users who have a
115BT869 on board.  Here is his document:
116
117
118How-To
119------
120
121
122This text describes my successful attempt to eventually get the TV-Out
123feature of 3DFX Voodoo 3 3000 (PAL) working in a Linux environment.
124I've successfully configured the 800x600 mode -- And currently I am
125not interested in 640x480 -- hardware scaling rules in all cases
126I need the tv-out. My monitor works much less worse w/ 800x600PAL...
127
128All the information is based on my best knowledge but there might be
129some mistakes. In any case, THE ENTIRE RISK OF USING THIS INFORMATION
130IS WITH YOU, AND NO ONE ELSE IS LIABLE OF ANY PROBLEMS ENCOUNTERED.
131Please fix any mistakes, inaccuracies, writing errors, etc. you
132notice in this document.
133
134I was about to write briefly, but sorry due to limited resources
135I did not have time to write briefly (too much thinking ;).
136Well, browse through the text and skip all irrelevant parts
137to proceed...
138
139Tomi Ollila <too@iki.fi>
140
141
142The first time I got the the tv-out working I was working w/ Linux kernel
1432.4.3. Now I am redoing the work w/ Linux 2.4.4 and recording the steps
144in this document. Description of my system and software used is as follows:
145
146RedHat 7.0 linux distribution (probably any distribution will do, since
147all of the needed software is compiled from packages that are not RH-pagkaged)
148(maybe if anything is important, are modutils-2.3.14-3 and kernel-headers-2.4.0-0.26)
149
150XFree-4.0.3. I don't see any reason anyone uses any older. HW acceleration
151of Voodoo3 3000 works out of the box with this. Also Windowed!!!
152
153lm_sensors-2.5.5: Get this or newer. I have not used any older.
154
155i2c-2.5.5: Probably 2.4.x -kernel distributions has recent enough version
156of i2c. Since I also have IOmega BUZ and it's (working) versions require
157i2c-old, I cannot use the one's kernel provided. Since I cannot say anything
158about not using this i2c as separate package I suggest you do the same
159and compile this also.
160
161I have used kgcc that comes in RedHat 7.0 -distribution to compile all
162stuff. Probably all other recent gcc -compilers will produce good results
163also: kgcc -v outputs:
164Reading specs from /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/specs
165gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
166
167--
168
1691) The work starts w/ kernel compilation (or skip to step 2, I quess it will
170   work w/ any recent 2.2 and 2.4 -kernels)
171 
172   # run make config, make menuconfig or make xconfig (I suggest 'xconfig')
173
174   For sure you need kernel module support and /proc -filesystem support
175   (XXX add more absolute requirements)
176
177   Now I cannot say for sure, if following things needs to be compiled
178   at kernel compilation time or does i2c-2.5.5 bring all these:
179        character devices->i2c support->i2c support
180        character devices->i2c support->i2c bit-banging interfaces (*)
181        character devices->i2c support->i2c devices     (**)
182        character devices->/dev/agpart support
183        character devices->Direct Rendering Manager (XFree86 DRI support) (+)
184        character devices->3dfx banshee/Voodoo3+
185
186        make above as modules.
187
188        (*) I already forgot why I wanted some special attention for this
189        (**) It seems I never need this
190        (+) Hmm, It seems I have compiled this as part of the kernel binary
191
192        There is of course lot of other options you need to choose but these
193        are probably the ones needed...
194
195   # run make dep
196   # run make bzImage
197   # run make modules
198   # run make modules_install (as root)
199   # copy arch/i386/boot/bzImage to /boot/vmlinuz-2.4.4 (as root)
200   # edit /etc/lilo.conf and run lilo (as root)
201
2022) In order to (the most easiest way) compile separate i2c and lm_sensors
203   -package, symlink your linux source tree to /usr/src/linux (unless it is
204   there already) and do the following 
205
206   # tar zxvf i2c-2.5.5.tar.gz
207   # cd i2c-2.5.5
208   # make
209   # make install (as root)
210   # cd ..
211   # tar zxvf lm_sensors-2.5.5.tar.gz
212   # cd lm_sensors-2.5.5
213   # make
214   # make install (as root)
215   # cd ..
216
217   Now you have all necessary modules installed on the system (and
218   /usr/local/bin/sensors and /usr/local/sbin/sensors-detect).
219
220   But there is some configuration missing in order to activate
221   the needed functionality of the modules...
222
2233) Now, before going any further, let's take a look the modifications that
224   is required in XFree86 -configuration so that X is ready for the
225   tv-out functionality next time it is started.
226
227   XFree86-4.x uses the configuration file /etc/X11/XF86Config-4. Older
228   configuration files needed "ModeLine"s for all display resolutions
229   that are needed, but XFree86 version 4 can figure out those by itself.
230   But what it cannot figure out, are some special ModeLines that may
231   be reguired in various cases... and this is one of these.
232
233   For Voodoo 3 3000 TV out feature, special modelines are needed for
234   the supported resolutions, 640x480 and 800x600 (there might be others
235   but I don't know enough of the issue. In this document, I only
236   activate the 800x600 mode.
237
238   Make backup copy of your /etc/X11/XF86Config-4 in case you accidentally
239   screw something up so you can then reuse the old file if this happens.
240
241   Open /etc/X11/XF86Config-4 in your favourite editor and find line
242   that contains `Section "Monitor"'. At the end of that section,
243   just before line `EndSection', add the following lines:
244
245ModeLine "640x480PAL"   29.50       640  675  678  944  480  530  535  625
246ModeLine "800x600PAL"   36.00       800  818  820  960  600  653  655  750
247
248   Then, find lines that starts with something like:
249
250Section "Screen"
251        Identifier "Screen0"
252        Device "3Dfx Interactive, Inc.|Voodoo 3"
253        Monitor "<Your monitor>"
254        DefaultDepth 16
255...
256        Subsection "Display"
257                Depth 16
258#               Modes "1024x768" "640x480" "800x600" "800x600PAL" #"400x300"
259                Modes "1024x768" "800x600PAL"
260        EndSubSection
261
262   Make sure that `DefaultDepth' is set 16 (I don't know if any other works)
263   Then you notice there my resolutions as `Modes' -lines. I have outcommented
264   the first `Modes' -line so that testing is easier. You can do what
265   you widh here, just make sure to add that `"800x600PAL"' -line there.
266   Save the file and exit editor.
267
268
2694) It's is time to reboot (with new kernel), that is the easiest way to
270   continue.
271
2725) After rebooting, and X startup `lsmod' in my machine output following:
273   Module                  Size  Used by
274   tdfx                   54536   1
275   es1371                 28500   0
276   ac97_codec              8808   0 [es1371]
277
278   tdfx -module was loaded by X, and sound module by some RH -startup script.
279
280   Now you could run /usr/local/sbin/sensors-detect. After that was run in
281   my PII class -machine it suggested I add the following:
282
283   to /etc/modules.conf
284   alias char-major-89 i2c-dev
285
286   to some startup script (i choose append to /etc/rc.local)
287   # I2C adapter drivers
288   /sbin/modprobe i2c-piix4
289   /sbin/modprobe i2c-voodoo3
290   # I2C chip drivers
291   /sbin/modprobe w83781d
292   /sbin/modprobe eeprom
293
294   (you run the prg and add the stuff it suggests)
295
296   Let's now /sbin/modprobe -v i2c-voodoo3. Now I have:
297
298   Module                  Size  Used by
299   i2c-voodoo3             3012   0  (unused)
300   i2c-algo-bit            7796   2  [i2c-voodoo3]
301   i2c-core               12844   0  [i2c-algo-bit]
302   tdfx                   54536   1
303   es1371                 28500   0
304   ac97_codec              8808   0  [es1371]
305
306   I think this is the only one of the above that is required for the task.
307   (If that is not true, I'll revise this text and you never know I though
308    such a thing)
309
310   Now, turn on your TV set (unless it is already open) and make sure it
311   is getting (either s-video or composite... I personally have only
312   tested composite) input from your voodoo3 card. Don't change any
313   screen resolution just yet...
314
315   You notice the tv set screen is still blank. Changing screen resolutions
316   won't do any change on that, don't bother trying.
317
318   So, how to continue from there. The answer was found looking through
319   all the files that are found with zsh command line in lm_sensors dir:
320   grep -i voodoo3 **/*(.) | less
321   The file doc/chips/bt869 contains interesting information, with it
322   and some other information I found somewhere else, don't remember
323   either, I did:
324
325   modprobe -v bt869  (or insmod /lib/modules/2.x.x/misc/bt869)
326
327   NOW! you should see some noise on your TV-Set screen.
328
329   and `lsmod' returns (on my machine)
330
331   Module                  Size  Used by
332   bt869                   5392   0  (unused)
333   i2c-voodoo3             3012   0  (unused)
334   sensors                 6140   0  [bt869]
335   i2c-algo-bit            7796   2  [i2c-voodoo3]
336   i2c-core               12844   0  [bt869 sensors i2c-algo-bit]
337   tdfx                   54536   1
338   es1371                 28500   0
339   ac97_codec              8808   0  [es1371]
340 
341   If you now try to change mode to `800x600PAL' The noise pattern just
342   changes. That's because there are various parameters for bt869 to
343   make it operate in different systems.
344
345   The configuration entries for bt869 live somewhere in `proc' filesystem
346   and since it is so hard to remember, the following commands helps out:
347
348   # find /proc -name "bt869*" -print
349
350   In my system that output: /proc/sys/dev/sensors/bt869-i2c-0-44. Since
351   the last few characters may be different on your system I'll use...
352
353   # ls  /proc/sys/dev/sensors/bt869*  ... and this outputs:
354
355   colorbars:  Output colorbars instead of display data. Default `0'.
356   depth:      Display depth. Seems to be `16' on my system.
357   half:       No idea. Default `0'.
358   ntsc:       1: use NTSC, 0: use PAL. Default: `1'.
359   res;        Screen resolution to use. Defaut: `640 480'.
360   status:     Outputs some status info I do not know what that is.
361
362   For me, in order to get TV sync with incoming signal (or is it Voodoo3
363   that needs syncing), I first put colorbars on, and when I get colorbars
364   visible I shut colorbars off -- and then I have part of my 1024x768
365   displayed on TV-screen. Normal WIMP screen doesn't look so nice, but
366   games, pictures, etc. Looks just fine. And HW acceleration rules.
367
368   Do the following to achieve this:
369
370   # echo 1 > /proc/sys/dev/sensors/bt869*/colorbars
371   # echo 0 > /proc/sys/dev/sensors/bt869*/ntsc
372   # echo 800 600 > /proc/sys/dev/sensors/bt869*/res
373
374   Press ctrl-alt-num_keypad_+
375
376   Now you should see vertical colorbars on your TV-Set
377
378   # echo 0 > /proc/sys/dev/sensors/bt869*/colorbars
379
380   Now (part of) your computer display should be visible on your TV-Set.   
381
382
383   ... Ok, I did just that... after ctrl-alt-num_keypad_+ I did not get
384   synchronized colorbar output visible on my TV. So, at this time I
385   re-did...
386
387   # echo 1 > /proc/sys/dev/sensors/bt869*/colorbars
388
389   ... and got colorbars, and ...
390
391   # echo 0 > /proc/sys/dev/sensors/bt869*/colorbars
392
393   ... got my computer display visible on my TV.
394
395
396#EOF
397
Note: See TracBrowser for help on using the browser.