aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/acpi-hotkey.txt35
-rw-r--r--Documentation/dvb/README.dvb-usb132
-rw-r--r--Documentation/dvb/bt8xx.txt79
-rw-r--r--Documentation/feature-removal-schedule.txt16
-rw-r--r--Documentation/filesystems/inotify.txt138
-rw-r--r--Documentation/hwmon/adm1021 (renamed from Documentation/i2c/chips/adm1021)0
-rw-r--r--Documentation/hwmon/adm1025 (renamed from Documentation/i2c/chips/adm1025)0
-rw-r--r--Documentation/hwmon/adm1026 (renamed from Documentation/i2c/chips/adm1026)0
-rw-r--r--Documentation/hwmon/adm1031 (renamed from Documentation/i2c/chips/adm1031)0
-rw-r--r--Documentation/hwmon/adm9240 (renamed from Documentation/i2c/chips/adm9240)0
-rw-r--r--Documentation/hwmon/asb100 (renamed from Documentation/i2c/chips/asb100)0
-rw-r--r--Documentation/hwmon/ds1621 (renamed from Documentation/i2c/chips/ds1621)0
-rw-r--r--Documentation/hwmon/fscher (renamed from Documentation/i2c/chips/fscher)0
-rw-r--r--Documentation/hwmon/gl518sm (renamed from Documentation/i2c/chips/gl518sm)0
-rw-r--r--Documentation/hwmon/it87 (renamed from Documentation/i2c/chips/it87)0
-rw-r--r--Documentation/hwmon/lm63 (renamed from Documentation/i2c/chips/lm63)0
-rw-r--r--Documentation/hwmon/lm75 (renamed from Documentation/i2c/chips/lm75)0
-rw-r--r--Documentation/hwmon/lm77 (renamed from Documentation/i2c/chips/lm77)0
-rw-r--r--Documentation/hwmon/lm78 (renamed from Documentation/i2c/chips/lm78)0
-rw-r--r--Documentation/hwmon/lm80 (renamed from Documentation/i2c/chips/lm80)0
-rw-r--r--Documentation/hwmon/lm83 (renamed from Documentation/i2c/chips/lm83)0
-rw-r--r--Documentation/hwmon/lm85 (renamed from Documentation/i2c/chips/lm85)0
-rw-r--r--Documentation/hwmon/lm87 (renamed from Documentation/i2c/chips/lm87)0
-rw-r--r--Documentation/hwmon/lm90 (renamed from Documentation/i2c/chips/lm90)0
-rw-r--r--Documentation/hwmon/lm92 (renamed from Documentation/i2c/chips/lm92)0
-rw-r--r--Documentation/hwmon/max1619 (renamed from Documentation/i2c/chips/max1619)0
-rw-r--r--Documentation/hwmon/pc87360 (renamed from Documentation/i2c/chips/pc87360)0
-rw-r--r--Documentation/hwmon/sis5595 (renamed from Documentation/i2c/chips/sis5595)0
-rw-r--r--Documentation/hwmon/smsc47b397 (renamed from Documentation/i2c/chips/smsc47b397)0
-rw-r--r--Documentation/hwmon/smsc47m1 (renamed from Documentation/i2c/chips/smsc47m1)0
-rw-r--r--Documentation/hwmon/sysfs-interface (renamed from Documentation/i2c/sysfs-interface)0
-rw-r--r--Documentation/hwmon/userspace-tools (renamed from Documentation/i2c/userspace-tools)0
-rw-r--r--Documentation/hwmon/via686a (renamed from Documentation/i2c/chips/via686a)0
-rw-r--r--Documentation/hwmon/w83627hf (renamed from Documentation/i2c/chips/w83627hf)0
-rw-r--r--Documentation/hwmon/w83781d (renamed from Documentation/i2c/chips/w83781d)0
-rw-r--r--Documentation/hwmon/w83l785ts (renamed from Documentation/i2c/chips/w83l785ts)0
-rw-r--r--Documentation/i2c/chips/max687522
-rw-r--r--Documentation/i2c/dev-interface15
-rw-r--r--Documentation/i2c/writing-clients7
-rw-r--r--Documentation/infiniband/user_verbs.txt69
-rw-r--r--Documentation/kernel-parameters.txt5
-rw-r--r--Documentation/networking/fib_trie.txt145
-rw-r--r--Documentation/pcmcia/driver-changes.txt9
-rw-r--r--Documentation/power/video.txt1
-rw-r--r--Documentation/usb/sn9c102.txt4
-rw-r--r--Documentation/usb/usbmon.txt29
-rw-r--r--Documentation/video4linux/CARDLIST.bttv2
-rw-r--r--Documentation/video4linux/CARDLIST.cx882
-rw-r--r--Documentation/video4linux/CARDLIST.saa713414
-rw-r--r--Documentation/video4linux/CARDLIST.tuner4
-rw-r--r--Documentation/video4linux/bttv/Cards74
-rw-r--r--Documentation/video4linux/not-in-cx2388x-datasheet.txt4
52 files changed, 583 insertions, 223 deletions
diff --git a/Documentation/acpi-hotkey.txt b/Documentation/acpi-hotkey.txt
new file mode 100644
index 000000000000..4c115a7bb826
--- /dev/null
+++ b/Documentation/acpi-hotkey.txt
@@ -0,0 +1,35 @@
1driver/acpi/hotkey.c implement:
21. /proc/acpi/hotkey/event_config
3(event based hotkey or event config interface):
4a. add a event based hotkey(event) :
5echo "0:bus::action:method:num:num" > event_config
6
7b. delete a event based hotkey(event):
8echo "1:::::num:num" > event_config
9
10c. modify a event based hotkey(event):
11echo "2:bus::action:method:num:num" > event_config
12
132. /proc/acpi/hotkey/poll_config
14(polling based hotkey or event config interface):
15a.add a polling based hotkey(event) :
16echo "0:bus:method:action:method:num" > poll_config
17this adding command will create a proc file
18/proc/acpi/hotkey/method, which is used to get
19result of polling.
20
21b.delete a polling based hotkey(event):
22echo "1:::::num" > event_config
23
24c.modify a polling based hotkey(event):
25echo "2:bus:method:action:method:num" > poll_config
26
273./proc/acpi/hotkey/action
28(interface to call aml method associated with a
29specific hotkey(event))
30echo "event_num:event_type:event_argument" >
31 /proc/acpi/hotkey/action.
32The result of the execution of this aml method is
33attached to /proc/acpi/hotkey/poll_method, which is dnyamically
34created. Please use command "cat /proc/acpi/hotkey/polling_method"
35to retrieve it.
diff --git a/Documentation/dvb/README.dvb-usb b/Documentation/dvb/README.dvb-usb
index c7ed01b9f8f4..ac0797ea646c 100644
--- a/Documentation/dvb/README.dvb-usb
+++ b/Documentation/dvb/README.dvb-usb
@@ -13,14 +13,17 @@ different way: With the help of a dvb-usb-framework.
13The framework provides generic functions (mostly kernel API calls), such as: 13The framework provides generic functions (mostly kernel API calls), such as:
14 14
15- Transport Stream URB handling in conjunction with dvb-demux-feed-control 15- Transport Stream URB handling in conjunction with dvb-demux-feed-control
16 (bulk and isoc (TODO) are supported) 16 (bulk and isoc are supported)
17- registering the device for the DVB-API 17- registering the device for the DVB-API
18- registering an I2C-adapter if applicable 18- registering an I2C-adapter if applicable
19- remote-control/input-device handling 19- remote-control/input-device handling
20- firmware requesting and loading (currently just for the Cypress USB 20- firmware requesting and loading (currently just for the Cypress USB
21 controller) 21 controllers)
22- other functions/methods which can be shared by several drivers (such as 22- other functions/methods which can be shared by several drivers (such as
23 functions for bulk-control-commands) 23 functions for bulk-control-commands)
24- TODO: a I2C-chunker. It creates device-specific chunks of register-accesses
25 depending on length of a register and the number of values that can be
26 multi-written and multi-read.
24 27
25The source code of the particular DVB USB devices does just the communication 28The source code of the particular DVB USB devices does just the communication
26with the device via the bus. The connection between the DVB-API-functionality 29with the device via the bus. The connection between the DVB-API-functionality
@@ -36,93 +39,18 @@ the dvb-usb-lib.
36TODO: dynamic enabling and disabling of the pid-filter in regard to number of 39TODO: dynamic enabling and disabling of the pid-filter in regard to number of
37feeds requested. 40feeds requested.
38 41
39Supported devices USB1.1 42Supported devices
40======================== 43========================
41 44
42Produced and reselled by Twinhan: 45See the LinuxTV DVB Wiki at www.linuxtv.org for a complete list of
43--------------------------------- 46cards/drivers/firmwares:
44- TwinhanDTV USB-Ter DVB-T Device (VP7041)
45 http://www.twinhan.com/product_terrestrial_3.asp
46 47
47- TwinhanDTV Magic Box (VP7041e) 48http://www.linuxtv.org/wiki/index.php/DVB_USB
48 http://www.twinhan.com/product_terrestrial_4.asp
49
50- HAMA DVB-T USB device
51 http://www.hama.de/portal/articleId*110620/action*2598
52
53- CTS Portable (Chinese Television System) (2)
54 http://www.2cts.tv/ctsportable/
55
56- Unknown USB DVB-T device with vendor ID Hyper-Paltek
57
58
59Produced and reselled by KWorld:
60--------------------------------
61- KWorld V-Stream XPERT DTV DVB-T USB
62 http://www.kworld.com.tw/en/product/DVBT-USB/DVBT-USB.html
63
64- JetWay DTV DVB-T USB
65 http://www.jetway.com.tw/evisn/product/lcd-tv/DVT-USB/dtv-usb.htm
66
67- ADSTech Instant TV DVB-T USB
68 http://www.adstech.com/products/PTV-333/intro/PTV-333_intro.asp?pid=PTV-333
69
70
71Others:
72-------
73- Ultima Electronic/Artec T1 USB TVBOX (AN2135, AN2235, AN2235 with Panasonic Tuner)
74 http://82.161.246.249/products-tvbox.html
75
76- Compro Videomate DVB-U2000 - DVB-T USB (2)
77 http://www.comprousa.com/products/vmu2000.htm
78
79- Grandtec USB DVB-T
80 http://www.grand.com.tw/
81
82- AVerMedia AverTV DVBT USB
83 http://www.avermedia.com/
84
85- DiBcom USB DVB-T reference device (non-public)
86
87
88Supported devices USB2.0-only
89=============================
90- Twinhan MagicBox II
91 http://www.twinhan.com/product_terrestrial_7.asp
92
93- TwinhanDTV Alpha
94 http://www.twinhan.com/product_terrestrial_8.asp
95
96- DigitalNow TinyUSB 2 DVB-t Receiver
97 http://www.digitalnow.com.au/DigitalNow%20tinyUSB2%20Specifications.html
98
99- Hanftek UMT-010
100 http://www.globalsources.com/si/6008819757082/ProductDetail/Digital-TV/product_id-100046529
101
102
103Supported devices USB2.0 and USB1.1
104=============================
105- Typhoon/Yakumo/HAMA/Yuan DVB-T mobile USB2.0
106 http://www.yakumo.de/produkte/index.php?pid=1&ag=DVB-T
107 http://www.yuan.com.tw/en/products/vdo_ub300.html
108 http://www.hama.de/portal/articleId*114663/action*2563
109 http://www.anubisline.com/english/articlec.asp?id=50502&catid=002
110
111- Artec T1 USB TVBOX (FX2) (2)
112
113- Hauppauge WinTV NOVA-T USB2
114 http://www.hauppauge.com/
115
116- KWorld/ADSTech Instant DVB-T USB2.0 (DiB3000M-B)
117
118- DiBcom USB2.0 DVB-T reference device (non-public)
119
120- AVerMedia AverTV A800 DVB-T USB2.0
121
1221) It is working almost - work-in-progress.
1232) No test reports received yet.
124 49
1250. History & News: 500. History & News:
51 2005-06-30 - added support for WideView WT-220U (Thanks to Steve Chang)
52 2005-05-30 - added basic isochronous support to the dvb-usb-framework
53 added support for Conexant Hybrid reference design and Nebula DigiTV USB
126 2005-04-17 - all dibusb devices ported to make use of the dvb-usb-framework 54 2005-04-17 - all dibusb devices ported to make use of the dvb-usb-framework
127 2005-04-02 - re-enabled and improved remote control code. 55 2005-04-02 - re-enabled and improved remote control code.
128 2005-03-31 - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb. 56 2005-03-31 - ported the Yakumo/Hama/Typhoon DVB-T USB2.0 device to dvb-usb.
@@ -137,7 +65,7 @@ Supported devices USB2.0 and USB1.1
137 2005-01-31 - distorted streaming is gone for USB1.1 devices 65 2005-01-31 - distorted streaming is gone for USB1.1 devices
138 2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb 66 2005-01-13 - moved the mirrored pid_filter_table back to dvb-dibusb
139 - first almost working version for HanfTek UMT-010 67 - first almost working version for HanfTek UMT-010
140 - found out, that Yakumo/HAMA/Typhoon are predessors of the HanfTek UMT-010 68 - found out, that Yakumo/HAMA/Typhoon are predecessors of the HanfTek UMT-010
141 2005-01-10 - refactoring completed, now everything is very delightful 69 2005-01-10 - refactoring completed, now everything is very delightful
142 - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a 70 - tuner quirks for some weird devices (Artec T1 AN2235 device has sometimes a
143 Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich. 71 Panasonic Tuner assembled). Tunerprobing implemented. Thanks a lot to Gunnar Wittich.
@@ -187,25 +115,13 @@ Supported devices USB2.0 and USB1.1
1871. How to use? 1151. How to use?
1881.1. Firmware 1161.1. Firmware
189 117
190Most of the USB drivers need to download a firmware to start working. 118Most of the USB drivers need to download a firmware to the device before start
191 119working.
192for USB1.1 (AN2135) you need: dvb-usb-dibusb-5.0.0.11.fw
193for USB2.0 HanfTek: dvb-usb-umt-010-02.fw
194for USB2.0 DiBcom: dvb-usb-dibusb-6.0.0.8.fw
195for USB2.0 AVerMedia AverTV DVB-T USB2: dvb-usb-avertv-a800-01.fw
196for USB2.0 TwinhanDTV Alpha/MagicBox II: dvb-usb-vp7045-01.fw
197
198The files can be found on http://www.linuxtv.org/download/firmware/ .
199 120
200We do not have the permission (yet) to publish the following firmware-files. 121Have a look at the Wikipage for the DVB-USB-drivers to find out, which firmware
201You'll need to extract them from the windows drivers. 122you need for your device:
202 123
203You should be able to use "get_dvb_firmware dvb-usb" to get the firmware: 124http://www.linuxtv.org/wiki/index.php/DVB_USB
204
205for USB1.1 (AN2235) (a few Artec T1 devices): dvb-usb-dibusb-an2235-01.fw
206for USB2.0 Hauppauge: dvb-usb-nova-t-usb2-01.fw
207for USB2.0 ADSTech/Kworld USB2.0: dvb-usb-adstech-usb2-01.fw
208for USB2.0 Yakumo/Typhoon/Hama: dvb-usb-dtt200u-01.fw
209 125
2101.2. Compiling 1261.2. Compiling
211 127
@@ -289,6 +205,9 @@ Patches, comments and suggestions are very very welcome.
289 Gunnar Wittich and Joachim von Caron for their trust for providing 205 Gunnar Wittich and Joachim von Caron for their trust for providing
290 root-shells on their machines to implement support for new devices. 206 root-shells on their machines to implement support for new devices.
291 207
208 Allan Third and Michael Hutchinson for their help to write the Nebula
209 digitv-driver.
210
292 Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei 211 Glen Harris for bringing up, that there is a new dibusb-device and Jiun-Kuei
293 Jung from AVerMedia who kindly provided a special firmware to get the device 212 Jung from AVerMedia who kindly provided a special firmware to get the device
294 up and running in Linux. 213 up and running in Linux.
@@ -296,7 +215,12 @@ Patches, comments and suggestions are very very welcome.
296 Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by 215 Jennifer Chen, Jeff and Jack from Twinhan for kindly supporting by
297 writing the vp7045-driver. 216 writing the vp7045-driver.
298 217
299 Some guys on the linux-dvb mailing list for encouraging me 218 Steve Chang from WideView for providing information for new devices and
219 firmware files.
220
221 Michael Paxton for submitting remote control keymaps.
222
223 Some guys on the linux-dvb mailing list for encouraging me.
300 224
301 Peter Schildmann >peter.schildmann-nospam-at-web.de< for his 225 Peter Schildmann >peter.schildmann-nospam-at-web.de< for his
302 user-level firmware loader, which saves a lot of time 226 user-level firmware loader, which saves a lot of time
@@ -305,4 +229,4 @@ Patches, comments and suggestions are very very welcome.
305 Ulf Hermenau for helping me out with traditional chinese. 229 Ulf Hermenau for helping me out with traditional chinese.
306 230
307 André Smoktun and Christian Frömmel for supporting me with 231 André Smoktun and Christian Frömmel for supporting me with
308 hardware and listening to my problems very patient. 232 hardware and listening to my problems very patiently.
diff --git a/Documentation/dvb/bt8xx.txt b/Documentation/dvb/bt8xx.txt
index 3a3260794758..e6b8d05bc08d 100644
--- a/Documentation/dvb/bt8xx.txt
+++ b/Documentation/dvb/bt8xx.txt
@@ -1,66 +1,55 @@
1How to get the Nebula, PCTV and Twinhan DST cards working 1How to get the Nebula Electronics DigiTV, Pinnacle PCTV Sat, Twinhan DST + clones working
2========================================================= 2=========================================================================================
3 3
4This class of cards has a bt878a as the PCI interface, and 41) General information
5require the bttv driver. 5======================
6 6
7Please pay close attention to the warning about the bttv module 7This class of cards has a bt878a chip as the PCI interface.
8options below for the DST card. 8The different card drivers require the bttv driver to provide the means
9to access the i2c bus and the gpio pins of the bt8xx chipset.
9 10
101) General informations 112) Compilation rules for Kernel >= 2.6.12
11======================= 12=========================================
12 13
13These drivers require the bttv driver to provide the means to access 14Enable the following options:
14the i2c bus and the gpio pins of the bt8xx chipset.
15 15
16Because of this, you need to enable
17"Device drivers" => "Multimedia devices" 16"Device drivers" => "Multimedia devices"
18 => "Video For Linux" => "BT848 Video For Linux" 17 => "Video For Linux" => "BT848 Video For Linux"
19
20Furthermore you need to enable
21"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices" 18"Device drivers" => "Multimedia devices" => "Digital Video Broadcasting Devices"
22 => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards" 19 => "DVB for Linux" "DVB Core Support" "Nebula/Pinnacle PCTV/TwinHan PCI Cards"
23 20
242) Loading Modules 213) Loading Modules, described by two approaches
25================== 22===============================================
26 23
27In general you need to load the bttv driver, which will handle the gpio and 24In general you need to load the bttv driver, which will handle the gpio and
28i2c communication for us, plus the common dvb-bt8xx device driver. 25i2c communication for us, plus the common dvb-bt8xx device driver,
29The frontends for Nebula (nxt6000), Pinnacle PCTV (cx24110) and 26which is called the backend.
30TwinHan (dst) are loaded automatically by the dvb-bt8xx device driver. 27The frontends for Nebula DigiTV (nxt6000), Pinnacle PCTV Sat (cx24110),
28TwinHan DST + clones (dst and dst-ca) are loaded automatically by the backend.
29For further details about TwinHan DST + clones see /Documentation/dvb/ci.txt.
31 30
323a) Nebula / Pinnacle PCTV 313a) The manual approach
33-------------------------- 32-----------------------
34 33
35 $ modprobe bttv (normally bttv is being loaded automatically by kmod) 34Loading modules:
36 $ modprobe dvb-bt8xx (or just place dvb-bt8xx in /etc/modules for automatic loading) 35modprobe bttv
36modprobe dvb-bt8xx
37 37
38Unloading modules:
39modprobe -r dvb-bt8xx
40modprobe -r bttv
38 41
393b) TwinHan and Clones 423b) The automatic approach
40-------------------------- 43--------------------------
41 44
42 $ modprobe bttv i2c_hw=1 card=0x71 45If not already done by installation, place a line either in
43 $ modprobe dvb-bt8xx 46/etc/modules.conf or in /etc/modprobe.conf containing this text:
44 $ modprobe dst 47alias char-major-81 bttv
45
46The value 0x71 will override the PCI type detection for dvb-bt8xx,
47which is necessary for TwinHan cards.
48
49If you're having an older card (blue color circuit) and card=0x71 locks
50your machine, try using 0x68, too. If that does not work, ask on the
51mailing list.
52
53The DST module takes a couple of useful parameters:
54 48
55a. verbose takes values 0 to 5. These values control the verbosity level. 49Then place a line in /etc/modules containing this text:
56b. debug takes values 0 and 1. You can either disable or enable debugging. 50dvb-bt8xx
57c. dst_addons takes values 0 and 0x20:
58- A value of 0 means it is a FTA card.
59- A value of 0x20 means it has a Conditional Access slot.
60 51
61The autodetected values are determined by the "response string" 52Reboot your system and have fun!
62of the card, which you can see in your logs:
63e.g.: dst_get_device_id: Recognize [DSTMCI]
64 53
65-- 54--
66Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla 55Authors: Richard Walker, Jamie Honan, Michael Hunold, Manu Abraham, Uwe Bugla
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 1d227ee3792a..12dde43fe657 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -119,3 +119,19 @@ Why: Match the other drivers' name for the same function, duplicate names
119 will be available until removal of old names. 119 will be available until removal of old names.
120Who: Grant Coady <gcoady@gmail.com> 120Who: Grant Coady <gcoady@gmail.com>
121 121
122---------------------------
123
124What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
125When: November 2005
126Files: drivers/pcmcia/: pcmcia_ioctl.c
127Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a
128 normal hotpluggable bus, and with it using the default kernel
129 infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
130 control ioctl needed by cardmgr and cardctl from pcmcia-cs is
131 unnecessary, and makes further cleanups and integration of the
132 PCMCIA subsystem into the Linux kernel device driver model more
133 difficult. The features provided by cardmgr and cardctl are either
134 handled by the kernel itself now or are available in the new
135 pcmciautils package available at
136 http://kernel.org/pub/linux/utils/kernel/pcmcia/
137Who: Dominik Brodowski <linux@brodo.de>
diff --git a/Documentation/filesystems/inotify.txt b/Documentation/filesystems/inotify.txt
new file mode 100644
index 000000000000..2c716041f578
--- /dev/null
+++ b/Documentation/filesystems/inotify.txt
@@ -0,0 +1,138 @@
1 inotify
2 a powerful yet simple file change notification system
3
4
5
6Document started 15 Mar 2005 by Robert Love <rml@novell.com>
7
8(i) User Interface
9
10Inotify is controlled by a set of three sys calls
11
12First step in using inotify is to initialise an inotify instance
13
14 int fd = inotify_init ();
15
16Change events are managed by "watches". A watch is an (object,mask) pair where
17the object is a file or directory and the mask is a bit mask of one or more
18inotify events that the application wishes to receive. See <linux/inotify.h>
19for valid events. A watch is referenced by a watch descriptor, or wd.
20
21Watches are added via a path to the file.
22
23Watches on a directory will return events on any files inside of the directory.
24
25Adding a watch is simple,
26
27 int wd = inotify_add_watch (fd, path, mask);
28
29You can add a large number of files via something like
30
31 for each file to watch {
32 int wd = inotify_add_watch (fd, file, mask);
33 }
34
35You can update an existing watch in the same manner, by passing in a new mask.
36
37An existing watch is removed via the INOTIFY_IGNORE ioctl, for example
38
39 inotify_rm_watch (fd, wd);
40
41Events are provided in the form of an inotify_event structure that is read(2)
42from a inotify instance fd. The filename is of dynamic length and follows the
43struct. It is of size len. The filename is padded with null bytes to ensure
44proper alignment. This padding is reflected in len.
45
46You can slurp multiple events by passing a large buffer, for example
47
48 size_t len = read (fd, buf, BUF_LEN);
49
50Will return as many events as are available and fit in BUF_LEN.
51
52each inotify instance fd is also select()- and poll()-able.
53
54You can find the size of the current event queue via the FIONREAD ioctl.
55
56All watches are destroyed and cleaned up on close.
57
58
59(ii) Internal Kernel Implementation
60
61Each open inotify instance is associated with an inotify_device structure.
62
63Each watch is associated with an inotify_watch structure. Watches are chained
64off of each associated device and each associated inode.
65
66See fs/inotify.c for the locking and lifetime rules.
67
68
69(iii) Rationale
70
71Q: What is the design decision behind not tying the watch to the open fd of
72 the watched object?
73
74A: Watches are associated with an open inotify device, not an open file.
75 This solves the primary problem with dnotify: keeping the file open pins
76 the file and thus, worse, pins the mount. Dnotify is therefore infeasible
77 for use on a desktop system with removable media as the media cannot be
78 unmounted.
79
80Q: What is the design decision behind using an-fd-per-device as opposed to
81 an fd-per-watch?
82
83A: An fd-per-watch quickly consumes more file descriptors than are allowed,
84 more fd's than are feasible to manage, and more fd's than are optimally
85 select()-able. Yes, root can bump the per-process fd limit and yes, users
86 can use epoll, but requiring both is a silly and extraneous requirement.
87 A watch consumes less memory than an open file, separating the number
88 spaces is thus sensible. The current design is what user-space developers
89 want: Users initialize inotify, once, and add n watches, requiring but one fd
90 and no twiddling with fd limits. Initializing an inotify instance two
91 thousand times is silly. If we can implement user-space's preferences
92 cleanly--and we can, the idr layer makes stuff like this trivial--then we
93 should.
94
95 There are other good arguments. With a single fd, there is a single
96 item to block on, which is mapped to a single queue of events. The single
97 fd returns all watch events and also any potential out-of-band data. If
98 every fd was a separate watch,
99
100 - There would be no way to get event ordering. Events on file foo and
101 file bar would pop poll() on both fd's, but there would be no way to tell
102 which happened first. A single queue trivially gives you ordering. Such
103 ordering is crucial to existing applications such as Beagle. Imagine
104 "mv a b ; mv b a" events without ordering.
105
106 - We'd have to maintain n fd's and n internal queues with state,
107 versus just one. It is a lot messier in the kernel. A single, linear
108 queue is the data structure that makes sense.
109
110 - User-space developers prefer the current API. The Beagle guys, for
111 example, love it. Trust me, I asked. It is not a surprise: Who'd want
112 to manage and block on 1000 fd's via select?
113
114 - You'd have to manage the fd's, as an example: Call close() when you
115 received a delete event.
116
117 - No way to get out of band data.
118
119 - 1024 is still too low. ;-)
120
121 When you talk about designing a file change notification system that
122 scales to 1000s of directories, juggling 1000s of fd's just does not seem
123 the right interface. It is too heavy.
124
125Q: Why the system call approach?
126
127A: The poor user-space interface is the second biggest problem with dnotify.
128 Signals are a terrible, terrible interface for file notification. Or for
129 anything, for that matter. The ideal solution, from all perspectives, is a
130 file descriptor-based one that allows basic file I/O and poll/select.
131 Obtaining the fd and managing the watches could have been done either via a
132 device file or a family of new system calls. We decided to implement a
133 family of system calls because that is the preffered approach for new kernel
134 features and it means our user interface requirements.
135
136 Additionally, it _is_ possible to more than one instance and
137 juggle more than one queue and thus more than one associated fd.
138
diff --git a/Documentation/i2c/chips/adm1021 b/Documentation/hwmon/adm1021
index 03d02bfb3df1..03d02bfb3df1 100644
--- a/Documentation/i2c/chips/adm1021
+++ b/Documentation/hwmon/adm1021
diff --git a/Documentation/i2c/chips/adm1025 b/Documentation/hwmon/adm1025
index 39d2b781b5d6..39d2b781b5d6 100644
--- a/Documentation/i2c/chips/adm1025
+++ b/Documentation/hwmon/adm1025
diff --git a/Documentation/i2c/chips/adm1026 b/Documentation/hwmon/adm1026
index 473c689d7924..473c689d7924 100644
--- a/Documentation/i2c/chips/adm1026
+++ b/Documentation/hwmon/adm1026
diff --git a/Documentation/i2c/chips/adm1031 b/Documentation/hwmon/adm1031
index 130a38382b98..130a38382b98 100644
--- a/Documentation/i2c/chips/adm1031
+++ b/Documentation/hwmon/adm1031
diff --git a/Documentation/i2c/chips/adm9240 b/Documentation/hwmon/adm9240
index 35f618f32896..35f618f32896 100644
--- a/Documentation/i2c/chips/adm9240
+++ b/Documentation/hwmon/adm9240
diff --git a/Documentation/i2c/chips/asb100 b/Documentation/hwmon/asb100
index ab7365e139be..ab7365e139be 100644
--- a/Documentation/i2c/chips/asb100
+++ b/Documentation/hwmon/asb100
diff --git a/Documentation/i2c/chips/ds1621 b/Documentation/hwmon/ds1621
index 1fee6f1e6bc5..1fee6f1e6bc5 100644
--- a/Documentation/i2c/chips/ds1621
+++ b/Documentation/hwmon/ds1621
diff --git a/Documentation/i2c/chips/fscher b/Documentation/hwmon/fscher
index 64031659aff3..64031659aff3 100644
--- a/Documentation/i2c/chips/fscher
+++ b/Documentation/hwmon/fscher
diff --git a/Documentation/i2c/chips/gl518sm b/Documentation/hwmon/gl518sm
index ce0881883bca..ce0881883bca 100644
--- a/Documentation/i2c/chips/gl518sm
+++ b/Documentation/hwmon/gl518sm
diff --git a/Documentation/i2c/chips/it87 b/Documentation/hwmon/it87
index 0d0195040d88..0d0195040d88 100644
--- a/Documentation/i2c/chips/it87
+++ b/Documentation/hwmon/it87
diff --git a/Documentation/i2c/chips/lm63 b/Documentation/hwmon/lm63
index 31660bf97979..31660bf97979 100644
--- a/Documentation/i2c/chips/lm63
+++ b/Documentation/hwmon/lm63
diff --git a/Documentation/i2c/chips/lm75 b/Documentation/hwmon/lm75
index 8e6356fe05d7..8e6356fe05d7 100644
--- a/Documentation/i2c/chips/lm75
+++ b/Documentation/hwmon/lm75
diff --git a/Documentation/i2c/chips/lm77 b/Documentation/hwmon/lm77
index 57c3a46d6370..57c3a46d6370 100644
--- a/Documentation/i2c/chips/lm77
+++ b/Documentation/hwmon/lm77
diff --git a/Documentation/i2c/chips/lm78 b/Documentation/hwmon/lm78
index 357086ed7f64..357086ed7f64 100644
--- a/Documentation/i2c/chips/lm78
+++ b/Documentation/hwmon/lm78
diff --git a/Documentation/i2c/chips/lm80 b/Documentation/hwmon/lm80
index cb5b407ba3e6..cb5b407ba3e6 100644
--- a/Documentation/i2c/chips/lm80
+++ b/Documentation/hwmon/lm80
diff --git a/Documentation/i2c/chips/lm83 b/Documentation/hwmon/lm83
index 061d9ed8ff43..061d9ed8ff43 100644
--- a/Documentation/i2c/chips/lm83
+++ b/Documentation/hwmon/lm83
diff --git a/Documentation/i2c/chips/lm85 b/Documentation/hwmon/lm85
index 9549237530cf..9549237530cf 100644
--- a/Documentation/i2c/chips/lm85
+++ b/Documentation/hwmon/lm85
diff --git a/Documentation/i2c/chips/lm87 b/Documentation/hwmon/lm87
index c952c57f0e11..c952c57f0e11 100644
--- a/Documentation/i2c/chips/lm87
+++ b/Documentation/hwmon/lm87
diff --git a/Documentation/i2c/chips/lm90 b/Documentation/hwmon/lm90
index 2c4cf39471f4..2c4cf39471f4 100644
--- a/Documentation/i2c/chips/lm90
+++ b/Documentation/hwmon/lm90
diff --git a/Documentation/i2c/chips/lm92 b/Documentation/hwmon/lm92
index 7705bfaa0708..7705bfaa0708 100644
--- a/Documentation/i2c/chips/lm92
+++ b/Documentation/hwmon/lm92
diff --git a/Documentation/i2c/chips/max1619 b/Documentation/hwmon/max1619
index d6f8d9cd7d7f..d6f8d9cd7d7f 100644
--- a/Documentation/i2c/chips/max1619
+++ b/Documentation/hwmon/max1619
diff --git a/Documentation/i2c/chips/pc87360 b/Documentation/hwmon/pc87360
index 89a8fcfa78df..89a8fcfa78df 100644
--- a/Documentation/i2c/chips/pc87360
+++ b/Documentation/hwmon/pc87360
diff --git a/Documentation/i2c/chips/sis5595 b/Documentation/hwmon/sis5595
index b7ae36b8cdf5..b7ae36b8cdf5 100644
--- a/Documentation/i2c/chips/sis5595
+++ b/Documentation/hwmon/sis5595
diff --git a/Documentation/i2c/chips/smsc47b397 b/Documentation/hwmon/smsc47b397
index da9d80c96432..da9d80c96432 100644
--- a/Documentation/i2c/chips/smsc47b397
+++ b/Documentation/hwmon/smsc47b397
diff --git a/Documentation/i2c/chips/smsc47m1 b/Documentation/hwmon/smsc47m1
index 34e6478c1425..34e6478c1425 100644
--- a/Documentation/i2c/chips/smsc47m1
+++ b/Documentation/hwmon/smsc47m1
diff --git a/Documentation/i2c/sysfs-interface b/Documentation/hwmon/sysfs-interface
index 346400519d0d..346400519d0d 100644
--- a/Documentation/i2c/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
diff --git a/Documentation/i2c/userspace-tools b/Documentation/hwmon/userspace-tools
index 2622aac65422..2622aac65422 100644
--- a/Documentation/i2c/userspace-tools
+++ b/Documentation/hwmon/userspace-tools
diff --git a/Documentation/i2c/chips/via686a b/Documentation/hwmon/via686a
index b82014cb7c53..b82014cb7c53 100644
--- a/Documentation/i2c/chips/via686a
+++ b/Documentation/hwmon/via686a
diff --git a/Documentation/i2c/chips/w83627hf b/Documentation/hwmon/w83627hf
index 78f37c2d602e..78f37c2d602e 100644
--- a/Documentation/i2c/chips/w83627hf
+++ b/Documentation/hwmon/w83627hf
diff --git a/Documentation/i2c/chips/w83781d b/Documentation/hwmon/w83781d
index e5459333ba68..e5459333ba68 100644
--- a/Documentation/i2c/chips/w83781d
+++ b/Documentation/hwmon/w83781d
diff --git a/Documentation/i2c/chips/w83l785ts b/Documentation/hwmon/w83l785ts
index 1841cedc25b2..1841cedc25b2 100644
--- a/Documentation/i2c/chips/w83l785ts
+++ b/Documentation/hwmon/w83l785ts
diff --git a/Documentation/i2c/chips/max6875 b/Documentation/i2c/chips/max6875
index b4fb49b41813..b02002898a09 100644
--- a/Documentation/i2c/chips/max6875
+++ b/Documentation/i2c/chips/max6875
@@ -2,10 +2,10 @@ Kernel driver max6875
2===================== 2=====================
3 3
4Supported chips: 4Supported chips:
5 * Maxim max6874, max6875 5 * Maxim MAX6874, MAX6875
6 Prefixes: 'max6875' 6 Prefix: 'max6875'
7 Addresses scanned: 0x50, 0x52 7 Addresses scanned: 0x50, 0x52
8 Datasheets: 8 Datasheet:
9 http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf 9 http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf
10 10
11Author: Ben Gardner <bgardner@wabtec.com> 11Author: Ben Gardner <bgardner@wabtec.com>
@@ -23,14 +23,26 @@ Module Parameters
23Description 23Description
24----------- 24-----------
25 25
26The MAXIM max6875 is a EEPROM-programmable power-supply sequencer/supervisor. 26The Maxim MAX6875 is an EEPROM-programmable power-supply sequencer/supervisor.
27It provides timed outputs that can be used as a watchdog, if properly wired. 27It provides timed outputs that can be used as a watchdog, if properly wired.
28It also provides 512 bytes of user EEPROM. 28It also provides 512 bytes of user EEPROM.
29 29
30At reset, the max6875 reads the configuration eeprom into its configuration 30At reset, the MAX6875 reads the configuration EEPROM into its configuration
31registers. The chip then begins to operate according to the values in the 31registers. The chip then begins to operate according to the values in the
32registers. 32registers.
33 33
34The Maxim MAX6874 is a similar, mostly compatible device, with more intputs
35and outputs:
36
37 vin gpi vout
38MAX6874 6 4 8
39MAX6875 4 3 5
40
41MAX6874 chips can have four different addresses (as opposed to only two for
42the MAX6875). The additional addresses (0x54 and 0x56) are not probed by
43this driver by default, but the probe module parameter can be used if
44needed.
45
34See the datasheet for details on how to program the EEPROM. 46See the datasheet for details on how to program the EEPROM.
35 47
36 48
diff --git a/Documentation/i2c/dev-interface b/Documentation/i2c/dev-interface
index 09d6cda2a1fb..b849ad636583 100644
--- a/Documentation/i2c/dev-interface
+++ b/Documentation/i2c/dev-interface
@@ -14,9 +14,12 @@ C example
14========= 14=========
15 15
16So let's say you want to access an i2c adapter from a C program. The 16So let's say you want to access an i2c adapter from a C program. The
17first thing to do is `#include <linux/i2c.h>" and "#include <linux/i2c-dev.h>. 17first thing to do is "#include <linux/i2c-dev.h>". Please note that
18Yes, I know, you should never include kernel header files, but until glibc 18there are two files named "i2c-dev.h" out there, one is distributed
19knows about i2c, there is not much choice. 19with the Linux kernel and is meant to be included from kernel
20driver code, the other one is distributed with lm_sensors and is
21meant to be included from user-space programs. You obviously want
22the second one here.
20 23
21Now, you have to decide which adapter you want to access. You should 24Now, you have to decide which adapter you want to access. You should
22inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned 25inspect /sys/class/i2c-dev/ to decide this. Adapter numbers are assigned
@@ -78,7 +81,7 @@ Full interface description
78========================== 81==========================
79 82
80The following IOCTLs are defined and fully supported 83The following IOCTLs are defined and fully supported
81(see also i2c-dev.h and i2c.h): 84(see also i2c-dev.h):
82 85
83ioctl(file,I2C_SLAVE,long addr) 86ioctl(file,I2C_SLAVE,long addr)
84 Change slave address. The address is passed in the 7 lower bits of the 87 Change slave address. The address is passed in the 7 lower bits of the
@@ -97,10 +100,10 @@ ioctl(file,I2C_PEC,long select)
97ioctl(file,I2C_FUNCS,unsigned long *funcs) 100ioctl(file,I2C_FUNCS,unsigned long *funcs)
98 Gets the adapter functionality and puts it in *funcs. 101 Gets the adapter functionality and puts it in *funcs.
99 102
100ioctl(file,I2C_RDWR,struct i2c_ioctl_rdwr_data *msgset) 103ioctl(file,I2C_RDWR,struct i2c_rdwr_ioctl_data *msgset)
101 104
102 Do combined read/write transaction without stop in between. 105 Do combined read/write transaction without stop in between.
103 The argument is a pointer to a struct i2c_ioctl_rdwr_data { 106 The argument is a pointer to a struct i2c_rdwr_ioctl_data {
104 107
105 struct i2c_msg *msgs; /* ptr to array of simple messages */ 108 struct i2c_msg *msgs; /* ptr to array of simple messages */
106 int nmsgs; /* number of messages to exchange */ 109 int nmsgs; /* number of messages to exchange */
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index f482dae81de3..91664be91ffc 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -27,7 +27,6 @@ address.
27static struct i2c_driver foo_driver = { 27static struct i2c_driver foo_driver = {
28 .owner = THIS_MODULE, 28 .owner = THIS_MODULE,
29 .name = "Foo version 2.3 driver", 29 .name = "Foo version 2.3 driver",
30 .id = I2C_DRIVERID_FOO, /* from i2c-id.h, optional */
31 .flags = I2C_DF_NOTIFY, 30 .flags = I2C_DF_NOTIFY,
32 .attach_adapter = &foo_attach_adapter, 31 .attach_adapter = &foo_attach_adapter,
33 .detach_client = &foo_detach_client, 32 .detach_client = &foo_detach_client,
@@ -37,12 +36,6 @@ static struct i2c_driver foo_driver = {
37The name can be chosen freely, and may be upto 40 characters long. Please 36The name can be chosen freely, and may be upto 40 characters long. Please
38use something descriptive here. 37use something descriptive here.
39 38
40If used, the id should be a unique ID. The range 0xf000 to 0xffff is
41reserved for local use, and you can use one of those until you start
42distributing the driver, at which time you should contact the i2c authors
43to get your own ID(s). Note that most of the time you don't need an ID
44at all so you can just omit it.
45
46Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This 39Don't worry about the flags field; just put I2C_DF_NOTIFY into it. This
47means that your driver will be notified when new adapters are found. 40means that your driver will be notified when new adapters are found.
48This is almost always what you want. 41This is almost always what you want.
diff --git a/Documentation/infiniband/user_verbs.txt b/Documentation/infiniband/user_verbs.txt
new file mode 100644
index 000000000000..f847501e50b5
--- /dev/null
+++ b/Documentation/infiniband/user_verbs.txt
@@ -0,0 +1,69 @@
1USERSPACE VERBS ACCESS
2
3 The ib_uverbs module, built by enabling CONFIG_INFINIBAND_USER_VERBS,
4 enables direct userspace access to IB hardware via "verbs," as
5 described in chapter 11 of the InfiniBand Architecture Specification.
6
7 To use the verbs, the libibverbs library, available from
8 <http://openib.org/>, is required. libibverbs contains a
9 device-independent API for using the ib_uverbs interface.
10 libibverbs also requires appropriate device-dependent kernel and
11 userspace driver for your InfiniBand hardware. For example, to use
12 a Mellanox HCA, you will need the ib_mthca kernel module and the
13 libmthca userspace driver be installed.
14
15User-kernel communication
16
17 Userspace communicates with the kernel for slow path, resource
18 management operations via the /dev/infiniband/uverbsN character
19 devices. Fast path operations are typically performed by writing
20 directly to hardware registers mmap()ed into userspace, with no
21 system call or context switch into the kernel.
22
23 Commands are sent to the kernel via write()s on these device files.
24 The ABI is defined in drivers/infiniband/include/ib_user_verbs.h.
25 The structs for commands that require a response from the kernel
26 contain a 64-bit field used to pass a pointer to an output buffer.
27 Status is returned to userspace as the return value of the write()
28 system call.
29
30Resource management
31
32 Since creation and destruction of all IB resources is done by
33 commands passed through a file descriptor, the kernel can keep track
34 of which resources are attached to a given userspace context. The
35 ib_uverbs module maintains idr tables that are used to translate
36 between kernel pointers and opaque userspace handles, so that kernel
37 pointers are never exposed to userspace and userspace cannot trick
38 the kernel into following a bogus pointer.
39
40 This also allows the kernel to clean up when a process exits and
41 prevent one process from touching another process's resources.
42
43Memory pinning
44
45 Direct userspace I/O requires that memory regions that are potential
46 I/O targets be kept resident at the same physical address. The
47 ib_uverbs module manages pinning and unpinning memory regions via
48 get_user_pages() and put_page() calls. It also accounts for the
49 amount of memory pinned in the process's locked_vm, and checks that
50 unprivileged processes do not exceed their RLIMIT_MEMLOCK limit.
51
52 Pages that are pinned multiple times are counted each time they are
53 pinned, so the value of locked_vm may be an overestimate of the
54 number of pages pinned by a process.
55
56/dev files
57
58 To create the appropriate character device files automatically with
59 udev, a rule like
60
61 KERNEL="uverbs*", NAME="infiniband/%k"
62
63 can be used. This will create device nodes named
64
65 /dev/infiniband/uverbs0
66
67 and so on. Since the InfiniBand userspace verbs should be safe for
68 use by non-privileged processes, it may be useful to add an
69 appropriate MODE or GROUP to the udev rule.
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 4ec75c06bca4..a998a8c2f95b 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -37,7 +37,7 @@ restrictions referred to are that the relevant option is valid if:
37 IA-32 IA-32 aka i386 architecture is enabled. 37 IA-32 IA-32 aka i386 architecture is enabled.
38 IA-64 IA-64 architecture is enabled. 38 IA-64 IA-64 architecture is enabled.
39 IOSCHED More than one I/O scheduler is enabled. 39 IOSCHED More than one I/O scheduler is enabled.
40 IP_PNP IP DCHP, BOOTP, or RARP is enabled. 40 IP_PNP IP DHCP, BOOTP, or RARP is enabled.
41 ISAPNP ISA PnP code is enabled. 41 ISAPNP ISA PnP code is enabled.
42 ISDN Appropriate ISDN support is enabled. 42 ISDN Appropriate ISDN support is enabled.
43 JOY Appropriate joystick support is enabled. 43 JOY Appropriate joystick support is enabled.
@@ -758,6 +758,9 @@ running once the system is up.
758 maxcpus= [SMP] Maximum number of processors that an SMP kernel 758 maxcpus= [SMP] Maximum number of processors that an SMP kernel
759 should make use of 759 should make use of
760 760
761 max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or
762 equal to this physical address is ignored.
763
761 max_luns= [SCSI] Maximum number of LUNs to probe 764 max_luns= [SCSI] Maximum number of LUNs to probe
762 Should be between 1 and 2^32-1. 765 Should be between 1 and 2^32-1.
763 766
diff --git a/Documentation/networking/fib_trie.txt b/Documentation/networking/fib_trie.txt
new file mode 100644
index 000000000000..f50d0c673c57
--- /dev/null
+++ b/Documentation/networking/fib_trie.txt
@@ -0,0 +1,145 @@
1 LC-trie implementation notes.
2
3Node types
4----------
5leaf
6 An end node with data. This has a copy of the relevant key, along
7 with 'hlist' with routing table entries sorted by prefix length.
8 See struct leaf and struct leaf_info.
9
10trie node or tnode
11 An internal node, holding an array of child (leaf or tnode) pointers,
12 indexed through a subset of the key. See Level Compression.
13
14A few concepts explained
15------------------------
16Bits (tnode)
17 The number of bits in the key segment used for indexing into the
18 child array - the "child index". See Level Compression.
19
20Pos (tnode)
21 The position (in the key) of the key segment used for indexing into
22 the child array. See Path Compression.
23
24Path Compression / skipped bits
25 Any given tnode is linked to from the child array of its parent, using
26 a segment of the key specified by the parent's "pos" and "bits"
27 In certain cases, this tnode's own "pos" will not be immediately
28 adjacent to the parent (pos+bits), but there will be some bits
29 in the key skipped over because they represent a single path with no
30 deviations. These "skipped bits" constitute Path Compression.
31 Note that the search algorithm will simply skip over these bits when
32 searching, making it necessary to save the keys in the leaves to
33 verify that they actually do match the key we are searching for.
34
35Level Compression / child arrays
36 the trie is kept level balanced moving, under certain conditions, the
37 children of a full child (see "full_children") up one level, so that
38 instead of a pure binary tree, each internal node ("tnode") may
39 contain an arbitrarily large array of links to several children.
40 Conversely, a tnode with a mostly empty child array (see empty_children)
41 may be "halved", having some of its children moved downwards one level,
42 in order to avoid ever-increasing child arrays.
43
44empty_children
45 the number of positions in the child array of a given tnode that are
46 NULL.
47
48full_children
49 the number of children of a given tnode that aren't path compressed.
50 (in other words, they aren't NULL or leaves and their "pos" is equal
51 to this tnode's "pos"+"bits").
52
53 (The word "full" here is used more in the sense of "complete" than
54 as the opposite of "empty", which might be a tad confusing.)
55
56Comments
57---------
58
59We have tried to keep the structure of the code as close to fib_hash as
60possible to allow verification and help up reviewing.
61
62fib_find_node()
63 A good start for understanding this code. This function implements a
64 straightforward trie lookup.
65
66fib_insert_node()
67 Inserts a new leaf node in the trie. This is bit more complicated than
68 fib_find_node(). Inserting a new node means we might have to run the
69 level compression algorithm on part of the trie.
70
71trie_leaf_remove()
72 Looks up a key, deletes it and runs the level compression algorithm.
73
74trie_rebalance()
75 The key function for the dynamic trie after any change in the trie
76 it is run to optimize and reorganize. Tt will walk the trie upwards
77 towards the root from a given tnode, doing a resize() at each step
78 to implement level compression.
79
80resize()
81 Analyzes a tnode and optimizes the child array size by either inflating
82 or shrinking it repeatedly until it fullfills the criteria for optimal
83 level compression. This part follows the original paper pretty closely
84 and there may be some room for experimentation here.
85
86inflate()
87 Doubles the size of the child array within a tnode. Used by resize().
88
89halve()
90 Halves the size of the child array within a tnode - the inverse of
91 inflate(). Used by resize();
92
93fn_trie_insert(), fn_trie_delete(), fn_trie_select_default()
94 The route manipulation functions. Should conform pretty closely to the
95 corresponding functions in fib_hash.
96
97fn_trie_flush()
98 This walks the full trie (using nextleaf()) and searches for empty
99 leaves which have to be removed.
100
101fn_trie_dump()
102 Dumps the routing table ordered by prefix length. This is somewhat
103 slower than the corresponding fib_hash function, as we have to walk the
104 entire trie for each prefix length. In comparison, fib_hash is organized
105 as one "zone"/hash per prefix length.
106
107Locking
108-------
109
110fib_lock is used for an RW-lock in the same way that this is done in fib_hash.
111However, the functions are somewhat separated for other possible locking
112scenarios. It might conceivably be possible to run trie_rebalance via RCU
113to avoid read_lock in the fn_trie_lookup() function.
114
115Main lookup mechanism
116---------------------
117fn_trie_lookup() is the main lookup function.
118
119The lookup is in its simplest form just like fib_find_node(). We descend the
120trie, key segment by key segment, until we find a leaf. check_leaf() does
121the fib_semantic_match in the leaf's sorted prefix hlist.
122
123If we find a match, we are done.
124
125If we don't find a match, we enter prefix matching mode. The prefix length,
126starting out at the same as the key length, is reduced one step at a time,
127and we backtrack upwards through the trie trying to find a longest matching
128prefix. The goal is always to reach a leaf and get a positive result from the
129fib_semantic_match mechanism.
130
131Inside each tnode, the search for longest matching prefix consists of searching
132through the child array, chopping off (zeroing) the least significant "1" of
133the child index until we find a match or the child index consists of nothing but
134zeros.
135
136At this point we backtrack (t->stats.backtrack++) up the trie, continuing to
137chop off part of the key in order to find the longest matching prefix.
138
139At this point we will repeatedly descend subtries to look for a match, and there
140are some optimizations available that can provide us with "shortcuts" to avoid
141descending into dead ends. Look for "HL_OPTIMIZE" sections in the code.
142
143To alleviate any doubts about the correctness of the route selection process,
144a new netlink operation has been added. Look for NETLINK_FIB_LOOKUP, which
145gives userland access to fib_lookup().
diff --git a/Documentation/pcmcia/driver-changes.txt b/Documentation/pcmcia/driver-changes.txt
index 9c315ab48a02..59ccc63838c1 100644
--- a/Documentation/pcmcia/driver-changes.txt
+++ b/Documentation/pcmcia/driver-changes.txt
@@ -1,6 +1,13 @@
1This file details changes in 2.6 which affect PCMCIA card driver authors: 1This file details changes in 2.6 which affect PCMCIA card driver authors:
2 2
3* in-kernel device<->driver matching 3* event handler initialization in struct pcmcia_driver (as of 2.6.13)
4 The event handler is notified of all events, and must be initialized
5 as the event() callback in the driver's struct pcmcia_driver.
6
7* pcmcia/version.h should not be used (as of 2.6.13)
8 This file will be removed eventually.
9
10* in-kernel device<->driver matching (as of 2.6.13)
4 PCMCIA devices and their correct drivers can now be matched in 11 PCMCIA devices and their correct drivers can now be matched in
5 kernelspace. See 'devicetable.txt' for details. 12 kernelspace. See 'devicetable.txt' for details.
6 13
diff --git a/Documentation/power/video.txt b/Documentation/power/video.txt
index 881a37e3eeb0..7a4a5036d123 100644
--- a/Documentation/power/video.txt
+++ b/Documentation/power/video.txt
@@ -117,6 +117,7 @@ IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4)
117Medion MD4220 ??? (*) 117Medion MD4220 ??? (*)
118Samsung P35 vbetool needed (6) 118Samsung P35 vbetool needed (6)
119Sharp PC-AR10 (ATI rage) none (1) 119Sharp PC-AR10 (ATI rage) none (1)
120Sony Vaio PCG-C1VRX/K s3_bios (2)
120Sony Vaio PCG-F403 ??? (*) 121Sony Vaio PCG-F403 ??? (*)
121Sony Vaio PCG-N505SN ??? (*) 122Sony Vaio PCG-N505SN ??? (*)
122Sony Vaio vgn-s260 X or boot-radeon can init it (5) 123Sony Vaio vgn-s260 X or boot-radeon can init it (5)
diff --git a/Documentation/usb/sn9c102.txt b/Documentation/usb/sn9c102.txt
index cf9a1187edce..3f8a119db31b 100644
--- a/Documentation/usb/sn9c102.txt
+++ b/Documentation/usb/sn9c102.txt
@@ -297,6 +297,7 @@ Vendor ID Product ID
2970x0c45 0x602a 2970x0c45 0x602a
2980x0c45 0x602b 2980x0c45 0x602b
2990x0c45 0x602c 2990x0c45 0x602c
3000x0c45 0x602d
3000x0c45 0x6030 3010x0c45 0x6030
3010x0c45 0x6080 3020x0c45 0x6080
3020x0c45 0x6082 3030x0c45 0x6082
@@ -333,6 +334,7 @@ Model Manufacturer
333----- ------------ 334----- ------------
334HV7131D Hynix Semiconductor, Inc. 335HV7131D Hynix Semiconductor, Inc.
335MI-0343 Micron Technology, Inc. 336MI-0343 Micron Technology, Inc.
337OV7630 OmniVision Technologies, Inc.
336PAS106B PixArt Imaging, Inc. 338PAS106B PixArt Imaging, Inc.
337PAS202BCB PixArt Imaging, Inc. 339PAS202BCB PixArt Imaging, Inc.
338TAS5110C1B Taiwan Advanced Sensor Corporation 340TAS5110C1B Taiwan Advanced Sensor Corporation
@@ -470,9 +472,11 @@ order):
470- Luca Capello for the donation of a webcam; 472- Luca Capello for the donation of a webcam;
471- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the 473- Joao Rodrigo Fuzaro, Joao Limirio, Claudio Filho and Caio Begotti for the
472 donation of a webcam; 474 donation of a webcam;
475- Jon Hollstrom for the donation of a webcam;
473- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB 476- Carlos Eduardo Medaglia Dyonisio, who added the support for the PAS202BCB
474 image sensor; 477 image sensor;
475- Stefano Mozzi, who donated 45 EU; 478- Stefano Mozzi, who donated 45 EU;
479- Andrew Pearce for the donation of a webcam;
476- Bertrik Sikken, who reverse-engineered and documented the Huffman compression 480- Bertrik Sikken, who reverse-engineered and documented the Huffman compression
477 algorithm used in the SN9C10x controllers and implemented the first decoder; 481 algorithm used in the SN9C10x controllers and implemented the first decoder;
478- Mizuno Takafumi for the donation of a webcam; 482- Mizuno Takafumi for the donation of a webcam;
diff --git a/Documentation/usb/usbmon.txt b/Documentation/usb/usbmon.txt
index 2f8431f92b77..f1896ee3bb2a 100644
--- a/Documentation/usb/usbmon.txt
+++ b/Documentation/usb/usbmon.txt
@@ -101,6 +101,13 @@ Here is the list of words, from left to right:
101 or 3 and 2 positions, correspondingly. 101 or 3 and 2 positions, correspondingly.
102- URB Status. This field makes no sense for submissions, but is present 102- URB Status. This field makes no sense for submissions, but is present
103 to help scripts with parsing. In error case, it contains the error code. 103 to help scripts with parsing. In error case, it contains the error code.
104 In case of a setup packet, it contains a Setup Tag. If scripts read a number
105 in this field, the proceed to read Data Length. Otherwise, they read
106 the setup packet before reading the Data Length.
107- Setup packet, if present, consists of 5 words: one of each for bmRequestType,
108 bRequest, wValue, wIndex, wLength, as specified by the USB Specification 2.0.
109 These words are safe to decode if Setup Tag was 's'. Otherwise, the setup
110 packet was present, but not captured, and the fields contain filler.
104- Data Length. This is the actual length in the URB. 111- Data Length. This is the actual length in the URB.
105- Data tag. The usbmon may not always capture data, even if length is nonzero. 112- Data tag. The usbmon may not always capture data, even if length is nonzero.
106 Only if tag is '=', the data words are present. 113 Only if tag is '=', the data words are present.
@@ -125,25 +132,31 @@ class ParsedLine {
125 String data_str = st.nextToken(); 132 String data_str = st.nextToken();
126 int len = data_str.length() / 2; 133 int len = data_str.length() / 2;
127 int i; 134 int i;
135 int b; // byte is signed, apparently?! XXX
128 for (i = 0; i < len; i++) { 136 for (i = 0; i < len; i++) {
129 data[data_len] = Byte.parseByte( 137 // data[data_len] = Byte.parseByte(
130 data_str.substring(i*2, i*2 + 2), 138 // data_str.substring(i*2, i*2 + 2),
131 16); 139 // 16);
140 b = Integer.parseInt(
141 data_str.substring(i*2, i*2 + 2),
142 16);
143 if (b >= 128)
144 b *= -1;
145 data[data_len] = (byte) b;
132 data_len++; 146 data_len++;
133 } 147 }
134 } 148 }
135 } 149 }
136} 150}
137 151
138This format is obviously deficient. For example, the setup packet for control 152This format may be changed in the future.
139transfers is not delivered. This will change in the future.
140 153
141Examples: 154Examples:
142 155
143An input control transfer to get a port status: 156An input control transfer to get a port status.
144 157
145d74ff9a0 2640288196 S Ci:001:00 -115 4 < 158d5ea89a0 3575914555 S Ci:001:00 s a3 00 0000 0003 0004 4 <
146d74ff9a0 2640288202 C Ci:001:00 0 4 = 01010100 159d5ea89a0 3575914560 C Ci:001:00 0 4 = 01050000
147 160
148An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper 161An output bulk transfer to send a SCSI command 0x5E in a 31-byte Bulk wrapper
149to a storage device at address 5: 162to a storage device at address 5:
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
index aeeafec0594c..62a12a08e2ac 100644
--- a/Documentation/video4linux/CARDLIST.bttv
+++ b/Documentation/video4linux/CARDLIST.bttv
@@ -1,4 +1,4 @@
1card=0 - *** UNKNOWN/GENERIC *** 1card=0 - *** UNKNOWN/GENERIC ***
2card=1 - MIRO PCTV 2card=1 - MIRO PCTV
3card=2 - Hauppauge (bt848) 3card=2 - Hauppauge (bt848)
4card=3 - STB, Gateway P/N 6000699 (bt848) 4card=3 - STB, Gateway P/N 6000699 (bt848)
diff --git a/Documentation/video4linux/CARDLIST.cx88 b/Documentation/video4linux/CARDLIST.cx88
index 4377aa11f567..6d44958289de 100644
--- a/Documentation/video4linux/CARDLIST.cx88
+++ b/Documentation/video4linux/CARDLIST.cx88
@@ -27,3 +27,5 @@ card=25 - Digital-Logic MICROSPACE Entertainment Center (MEC)
27card=26 - IODATA GV/BCTV7E 27card=26 - IODATA GV/BCTV7E
28card=27 - PixelView PlayTV Ultra Pro (Stereo) 28card=27 - PixelView PlayTV Ultra Pro (Stereo)
29card=28 - DViCO FusionHDTV 3 Gold-T 29card=28 - DViCO FusionHDTV 3 Gold-T
30card=29 - ADS Tech Instant TV DVB-T PCI
31card=30 - TerraTec Cinergy 1400 DVB-T
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134
index 735e8ba02d9f..1b5a3a9ffbe2 100644
--- a/Documentation/video4linux/CARDLIST.saa7134
+++ b/Documentation/video4linux/CARDLIST.saa7134
@@ -1,10 +1,10 @@
1 0 -> UNKNOWN/GENERIC 1 0 -> UNKNOWN/GENERIC
2 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001] 2 1 -> Proteus Pro [philips reference design] [1131:2001,1131:2001]
3 2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138] 3 2 -> LifeView FlyVIDEO3000 [5168:0138,4e42:0138]
4 3 -> LifeView FlyVIDEO2000 [5168:0138] 4 3 -> LifeView FlyVIDEO2000 [5168:0138]
5 4 -> EMPRESS [1131:6752] 5 4 -> EMPRESS [1131:6752]
6 5 -> SKNet Monster TV [1131:4e85] 6 5 -> SKNet Monster TV [1131:4e85]
7 6 -> Tevion MD 9717 7 6 -> Tevion MD 9717
8 7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01] 8 7 -> KNC One TV-Station RDS / Typhoon TV Tuner RDS [1131:fe01,1894:fe01]
9 8 -> Terratec Cinergy 400 TV [153B:1142] 9 8 -> Terratec Cinergy 400 TV [153B:1142]
10 9 -> Medion 5044 10 9 -> Medion 5044
@@ -34,6 +34,7 @@
34 33 -> AVerMedia DVD EZMaker [1461:10ff] 34 33 -> AVerMedia DVD EZMaker [1461:10ff]
35 34 -> Noval Prime TV 7133 35 34 -> Noval Prime TV 7133
36 35 -> AverMedia AverTV Studio 305 [1461:2115] 36 35 -> AverMedia AverTV Studio 305 [1461:2115]
37 36 -> UPMOST PURPLE TV [12ab:0800]
37 37 -> Items MuchTV Plus / IT-005 38 37 -> Items MuchTV Plus / IT-005
38 38 -> Terratec Cinergy 200 TV [153B:1152] 39 38 -> Terratec Cinergy 200 TV [153B:1152]
39 39 -> LifeView FlyTV Platinum Mini [5168:0212] 40 39 -> LifeView FlyTV Platinum Mini [5168:0212]
@@ -43,20 +44,21 @@
43 43 -> :Zolid Xpert TV7134 44 43 -> :Zolid Xpert TV7134
44 44 -> Empire PCI TV-Radio LE 45 44 -> Empire PCI TV-Radio LE
45 45 -> Avermedia AVerTV Studio 307 [1461:9715] 46 45 -> Avermedia AVerTV Studio 307 [1461:9715]
46 46 -> AVerMedia Cardbus TV/Radio [1461:d6ee] 47 46 -> AVerMedia Cardbus TV/Radio (E500) [1461:d6ee]
47 47 -> Terratec Cinergy 400 mobile [153b:1162] 48 47 -> Terratec Cinergy 400 mobile [153b:1162]
48 48 -> Terratec Cinergy 600 TV MK3 [153B:1158] 49 48 -> Terratec Cinergy 600 TV MK3 [153B:1158]
49 49 -> Compro VideoMate Gold+ Pal [185b:c200] 50 49 -> Compro VideoMate Gold+ Pal [185b:c200]
50 50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d] 51 50 -> Pinnacle PCTV 300i DVB-T + PAL [11bd:002d]
51 51 -> ProVideo PV952 [1540:9524] 52 51 -> ProVideo PV952 [1540:9524]
52 52 -> AverMedia AverTV/305 [1461:2108] 53 52 -> AverMedia AverTV/305 [1461:2108]
54 53 -> ASUS TV-FM 7135 [1043:4845]
53 54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214] 55 54 -> LifeView FlyTV Platinum FM [5168:0214,1489:0214]
54 55 -> LifeView FlyDVB-T DUO [5168:0306] 56 55 -> LifeView FlyDVB-T DUO [5168:0502,5168:0306]
55 56 -> Avermedia AVerTV 307 [1461:a70a] 57 56 -> Avermedia AVerTV 307 [1461:a70a]
56 57 -> Avermedia AVerTV GO 007 FM [1461:f31f] 58 57 -> Avermedia AVerTV GO 007 FM [1461:f31f]
57 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370] 59 58 -> ADS Tech Instant TV (saa7135) [1421:0350,1421:0370]
58 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134 60 59 -> Kworld/Tevion V-Stream Xpert TV PVR7134
59 60 -> Typhoon DVB-T Duo Digital/Analog Cardbus 61 60 -> Typhoon DVB-T Duo Digital/Analog Cardbus [4e42:0502]
60 61 -> Philips TOUGH DVB-T reference design 62 61 -> Philips TOUGH DVB-T reference design [1131:2004]
61 62 -> Compro VideoMate TV Gold+II 63 62 -> Compro VideoMate TV Gold+II
62 63 -> Kworld Xpert TV PVR7134 64 63 -> Kworld Xpert TV PVR7134
diff --git a/Documentation/video4linux/CARDLIST.tuner b/Documentation/video4linux/CARDLIST.tuner
index e78020f68b2e..d1b9d21ffd89 100644
--- a/Documentation/video4linux/CARDLIST.tuner
+++ b/Documentation/video4linux/CARDLIST.tuner
@@ -56,9 +56,9 @@ tuner=54 - tda8290+75
56tuner=55 - LG PAL (TAPE series) 56tuner=55 - LG PAL (TAPE series)
57tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4) 57tuner=56 - Philips PAL/SECAM multi (FQ1216AME MK4)
58tuner=57 - Philips FQ1236A MK4 58tuner=57 - Philips FQ1236A MK4
59tuner=58 - Ymec TVision TVF-8531MF 59tuner=58 - Ymec TVision TVF-8531MF/8831MF/8731MF
60tuner=59 - Ymec TVision TVF-5533MF 60tuner=59 - Ymec TVision TVF-5533MF
61tuner=60 - Thomson DDT 7611 (ATSC/NTSC) 61tuner=60 - Thomson DDT 7611 (ATSC/NTSC)
62tuner=61 - Tena TNF9533-D/IF 62tuner=61 - Tena TNF9533-D/IF/TNF9533-B/DF
63tuner=62 - Philips TEA5767HN FM Radio 63tuner=62 - Philips TEA5767HN FM Radio
64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner 64tuner=63 - Philips FMD1216ME MK3 Hybrid Tuner
diff --git a/Documentation/video4linux/bttv/Cards b/Documentation/video4linux/bttv/Cards
index 7f8c7eb70ab2..8f1941ede4da 100644
--- a/Documentation/video4linux/bttv/Cards
+++ b/Documentation/video4linux/bttv/Cards
@@ -20,7 +20,7 @@ All other cards only differ by additional components as tuners, sound
20decoders, EEPROMs, teletext decoders ... 20decoders, EEPROMs, teletext decoders ...
21 21
22 22
23Unsupported Cards: 23Unsupported Cards:
24------------------ 24------------------
25 25
26Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by 26Cards with Zoran (ZR) or Philips (SAA) or ISA are not supported by
@@ -50,11 +50,11 @@ Bt848a/Bt849 single crytal operation support possible!!!
50Miro/Pinnacle PCTV 50Miro/Pinnacle PCTV
51------------------ 51------------------
52 52
53- Bt848 53- Bt848
54 some (all??) come with 2 crystals for PAL/SECAM and NTSC 54 some (all??) come with 2 crystals for PAL/SECAM and NTSC
55- PAL, SECAM or NTSC TV tuner (Philips or TEMIC) 55- PAL, SECAM or NTSC TV tuner (Philips or TEMIC)
56- MSP34xx sound decoder on add on board 56- MSP34xx sound decoder on add on board
57 decoder is supported but AFAIK does not yet work 57 decoder is supported but AFAIK does not yet work
58 (other sound MUX setting in GPIO port needed??? somebody who fixed this???) 58 (other sound MUX setting in GPIO port needed??? somebody who fixed this???)
59- 1 tuner, 1 composite and 1 S-VHS input 59- 1 tuner, 1 composite and 1 S-VHS input
60- tuner type is autodetected 60- tuner type is autodetected
@@ -70,7 +70,7 @@ in 1997!
70Hauppauge Win/TV pci 70Hauppauge Win/TV pci
71-------------------- 71--------------------
72 72
73There are many different versions of the Hauppauge cards with different 73There are many different versions of the Hauppauge cards with different
74tuners (TV+Radio ...), teletext decoders. 74tuners (TV+Radio ...), teletext decoders.
75Note that even cards with same model numbers have (depending on the revision) 75Note that even cards with same model numbers have (depending on the revision)
76different chips on it. 76different chips on it.
@@ -80,22 +80,22 @@ different chips on it.
80- PAL, SECAM, NTSC or tuner with or without Radio support 80- PAL, SECAM, NTSC or tuner with or without Radio support
81 81
82e.g.: 82e.g.:
83 PAL: 83 PAL:
84 TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners 84 TDA5737: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
85 TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3 85 TSA5522: 1.4 GHz I2C-bus controlled synthesizer, I2C 0xc2-0xc3
86 86
87 NTSC: 87 NTSC:
88 TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners 88 TDA5731: VHF, hyperband and UHF mixer/oscillator for TV and VCR 3-band tuners
89 TSA5518: no datasheet available on Philips site 89 TSA5518: no datasheet available on Philips site
90- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip 90- Philips SAA5246 or SAA5284 ( or no) Teletext decoder chip
91 with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM) 91 with buffer RAM (e.g. Winbond W24257AS-35: 32Kx8 CMOS static RAM)
92 SAA5246 (I2C 0x22) is supported 92 SAA5246 (I2C 0x22) is supported
93- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y 93- 256 bytes EEPROM: Microchip 24LC02B or Philips 8582E2Y
94 with configuration information 94 with configuration information
95 I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf) 95 I2C address 0xa0 (24LC02B also responds to 0xa2-0xaf)
96- 1 tuner, 1 composite and (depending on model) 1 S-VHS input 96- 1 tuner, 1 composite and (depending on model) 1 S-VHS input
97- 14052B: mux for selection of sound source 97- 14052B: mux for selection of sound source
98- sound decoder: TDA9800, MSP34xx (stereo cards) 98- sound decoder: TDA9800, MSP34xx (stereo cards)
99 99
100 100
101Askey CPH-Series 101Askey CPH-Series
@@ -108,17 +108,17 @@ Developed by TelSignal(?), OEMed by many vendors (Typhoon, Anubis, Dynalink)
108 CPH05x: BT878 with FM 108 CPH05x: BT878 with FM
109 CPH06x: BT878 (w/o FM) 109 CPH06x: BT878 (w/o FM)
110 CPH07x: BT878 capture only 110 CPH07x: BT878 capture only
111 111
112 TV standards: 112 TV standards:
113 CPH0x0: NTSC-M/M 113 CPH0x0: NTSC-M/M
114 CPH0x1: PAL-B/G 114 CPH0x1: PAL-B/G
115 CPH0x2: PAL-I/I 115 CPH0x2: PAL-I/I
116 CPH0x3: PAL-D/K 116 CPH0x3: PAL-D/K
117 CPH0x4: SECAM-L/L 117 CPH0x4: SECAM-L/L
118 CPH0x5: SECAM-B/G 118 CPH0x5: SECAM-B/G
119 CPH0x6: SECAM-D/K 119 CPH0x6: SECAM-D/K
120 CPH0x7: PAL-N/N 120 CPH0x7: PAL-N/N
121 CPH0x8: PAL-B/H 121 CPH0x8: PAL-B/H
122 CPH0x9: PAL-M/M 122 CPH0x9: PAL-M/M
123 123
124 CPH03x was often sold as "TV capturer". 124 CPH03x was often sold as "TV capturer".
@@ -174,7 +174,7 @@ Lifeview Flyvideo Series:
174 "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98." 174 "The FlyVideo2000 and FlyVideo2000s product name have renamed to FlyVideo98."
175 Their Bt8x8 cards are listed as discontinued. 175 Their Bt8x8 cards are listed as discontinued.
176 Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?). 176 Flyvideo 2000S was probably sold as Flyvideo 3000 in some contries(Europe?).
177 The new Flyvideo 2000/3000 are SAA7130/SAA7134 based. 177 The new Flyvideo 2000/3000 are SAA7130/SAA7134 based.
178 178
179 "Flyvideo II" had been the name for the 848 cards, nowadays (in Germany) 179 "Flyvideo II" had been the name for the 848 cards, nowadays (in Germany)
180 this name is re-used for LR50 Rev.W. 180 this name is re-used for LR50 Rev.W.
@@ -235,12 +235,12 @@ Prolink
235 Multimedia TV packages (card + software pack): 235 Multimedia TV packages (card + software pack):
236 PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software 236 PixelView Play TV Theater - (Model: PV-M4200) = PixelView Play TV pro + Software
237 PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E) 237 PixelView Play TV PAK - (Model: PV-BT878P+ REV 4E)
238 PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A ) 238 PixelView Play TV/VCR - (Model: PV-M3200 REV 4C / 8D / 10A )
239 PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A ) 239 PixelView Studio PAK - (Model: M2200 REV 4C / 8D / 10A )
240 PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E) 240 PixelView PowerStudio PAK - (Model: PV-M3600 REV 4E)
241 PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A ) 241 PixelView DigitalVCR PAK - (Model: PV-M2400 REV 4C / 8D / 10A )
242 242
243 PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800 243 PixelView PlayTV PAK II (TV/FM card + usb camera) PV-M3800
244 PixelView PlayTV XP PV-M4700,PV-M4700(w/FM) 244 PixelView PlayTV XP PV-M4700,PV-M4700(w/FM)
245 PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w 245 PixelView PlayTV DVR PV-M4600 package contents:PixelView PlayTV pro, windvr & videoMail s/w
246 246
@@ -254,7 +254,7 @@ Prolink
254 254
255 DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030 255 DTV3000 PV-DTV3000P+ DVB-S CI = Twinhan VP-1030
256 DTV2000 DVB-S = Twinhan VP-1020 256 DTV2000 DVB-S = Twinhan VP-1020
257 257
258 Video Conferencing: 258 Video Conferencing:
259 PixelView Meeting PAK - (Model: PV-BT878P) 259 PixelView Meeting PAK - (Model: PV-BT878P)
260 PixelView Meeting PAK Lite - (Model: PV-BT878P) 260 PixelView Meeting PAK Lite - (Model: PV-BT878P)
@@ -308,7 +308,7 @@ KNC One
308 308
309 newer Cards have saa7134, but model name stayed the same? 309 newer Cards have saa7134, but model name stayed the same?
310 310
311Provideo 311Provideo
312-------- 312--------
313 PV951 or PV-951 (also are sold as: 313 PV951 or PV-951 (also are sold as:
314 Boeder TV-FM Video Capture Card 314 Boeder TV-FM Video Capture Card
@@ -353,7 +353,7 @@ AVerMedia
353 AVerTV 353 AVerTV
354 AVerTV Stereo 354 AVerTV Stereo
355 AVerTV Studio (w/FM) 355 AVerTV Studio (w/FM)
356 AVerMedia TV98 with Remote 356 AVerMedia TV98 with Remote
357 AVerMedia TV/FM98 Stereo 357 AVerMedia TV/FM98 Stereo
358 AVerMedia TVCAM98 358 AVerMedia TVCAM98
359 TVCapture (Bt848) 359 TVCapture (Bt848)
@@ -373,7 +373,7 @@ AVerMedia
373 (1) Daughterboard MB68-A with TDA9820T and TDA9840T 373 (1) Daughterboard MB68-A with TDA9820T and TDA9840T
374 (2) Sony NE41S soldered (stereo sound?) 374 (2) Sony NE41S soldered (stereo sound?)
375 (3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz 375 (3) Daughterboard M118-A w/ pic 16c54 and 4 MHz quartz
376 376
377 US site has different drivers for (as of 09/2002): 377 US site has different drivers for (as of 09/2002):
378 EZ Capture/InterCam PCI (BT-848 chip) 378 EZ Capture/InterCam PCI (BT-848 chip)
379 EZ Capture/InterCam PCI (BT-878 chip) 379 EZ Capture/InterCam PCI (BT-878 chip)
@@ -437,7 +437,7 @@ Terratec
437 Terra TValueRadio, "LR102 Rev.C" printed on the PCB 437 Terra TValueRadio, "LR102 Rev.C" printed on the PCB
438 Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB, 438 Terra TV/Radio+ Version 1.0, "80-CP2830100-0" TTTV3 printed on the PCB,
439 "CPH010-E83" on the back, SAA6588T, TDA9873H 439 "CPH010-E83" on the back, SAA6588T, TDA9873H
440 Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB, 440 Terra TValue Version BT878, "80-CP2830110-0 TTTV4" printed on the PCB,
441 "CPH011-D83" on back 441 "CPH011-D83" on back
442 Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0) 442 Terra TValue Version 1.0 "ceb105.PCB" (really identical to Terra TV+ Version 1.0)
443 Terra TValue New Revision "LR102 Rec.C" 443 Terra TValue New Revision "LR102 Rec.C"
@@ -528,7 +528,7 @@ Koutech
528 KW-606RSF 528 KW-606RSF
529 KW-607A (capture only) 529 KW-607A (capture only)
530 KW-608 (Zoran capture only) 530 KW-608 (Zoran capture only)
531 531
532IODATA (jp) 532IODATA (jp)
533------ 533------
534 GV-BCTV/PCI 534 GV-BCTV/PCI
@@ -542,15 +542,15 @@ Canopus (jp)
542------- 542-------
543 WinDVR = Kworld "KW-TVL878RF" 543 WinDVR = Kworld "KW-TVL878RF"
544 544
545www.sigmacom.co.kr 545www.sigmacom.co.kr
546------------------ 546------------------
547 Sigma Cyber TV II 547 Sigma Cyber TV II
548 548
549www.sasem.co.kr 549www.sasem.co.kr
550--------------- 550---------------
551 Litte OnAir TV 551 Litte OnAir TV
552 552
553hama 553hama
554---- 554----
555 TV/Radio-Tuner Card, PCI (Model 44677) = CPH051 555 TV/Radio-Tuner Card, PCI (Model 44677) = CPH051
556 556
@@ -638,7 +638,7 @@ Media-Surfer (esc-kathrein.de)
638 638
639Jetway (www.jetway.com.tw) 639Jetway (www.jetway.com.tw)
640-------------------------- 640--------------------------
641 JW-TV 878M 641 JW-TV 878M
642 JW-TV 878 = KWorld KW-TV878RF 642 JW-TV 878 = KWorld KW-TV878RF
643 643
644Galaxis 644Galaxis
@@ -715,7 +715,7 @@ Hauppauge
715 809 MyVideo 715 809 MyVideo
716 872 MyTV2Go FM 716 872 MyTV2Go FM
717 717
718 718
719 546 WinTV Nova-S CI 719 546 WinTV Nova-S CI
720 543 WinTV Nova 720 543 WinTV Nova
721 907 Nova-S USB 721 907 Nova-S USB
@@ -739,7 +739,7 @@ Hauppauge
739 832 MyTV2Go 739 832 MyTV2Go
740 869 MyTV2Go-FM 740 869 MyTV2Go-FM
741 805 MyVideo (USB) 741 805 MyVideo (USB)
742 742
743 743
744Matrix-Vision 744Matrix-Vision
745------------- 745-------------
@@ -764,7 +764,7 @@ Gallant (www.gallantcom.com) www.minton.com.tw
764 Intervision IV-550 (bt8x8) 764 Intervision IV-550 (bt8x8)
765 Intervision IV-100 (zoran) 765 Intervision IV-100 (zoran)
766 Intervision IV-1000 (bt8x8) 766 Intervision IV-1000 (bt8x8)
767 767
768Asonic (www.asonic.com.cn) (website down) 768Asonic (www.asonic.com.cn) (website down)
769----------------------------------------- 769-----------------------------------------
770 SkyEye tv 878 770 SkyEye tv 878
@@ -804,11 +804,11 @@ Kworld (www.kworld.com.tw)
804 804
805JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down) 805JTT/ Justy Corp.http://www.justy.co.jp/ (www.jtt.com.jp website down)
806--------------------------------------------------------------------- 806---------------------------------------------------------------------
807 JTT-02 (JTT TV) "TV watchmate pro" (bt848) 807 JTT-02 (JTT TV) "TV watchmate pro" (bt848)
808 808
809ADS www.adstech.com 809ADS www.adstech.com
810------------------- 810-------------------
811 Channel Surfer TV ( CHX-950 ) 811 Channel Surfer TV ( CHX-950 )
812 Channel Surfer TV+FM ( CHX-960FM ) 812 Channel Surfer TV+FM ( CHX-960FM )
813 813
814AVEC www.prochips.com 814AVEC www.prochips.com
@@ -874,7 +874,7 @@ www.ids-imaging.de
874------------------ 874------------------
875 Falcon Series (capture only) 875 Falcon Series (capture only)
876 In USA: http://www.theimagingsource.com/ 876 In USA: http://www.theimagingsource.com/
877 DFG/LC1 877 DFG/LC1
878 878
879www.sknet-web.co.jp 879www.sknet-web.co.jp
880------------------- 880-------------------
@@ -890,7 +890,7 @@ Cybertainment
890 CyberMail Xtreme 890 CyberMail Xtreme
891 These are Flyvideo 891 These are Flyvideo
892 892
893VCR (http://www.vcrinc.com/) 893VCR (http://www.vcrinc.com/)
894--- 894---
895 Video Catcher 16 895 Video Catcher 16
896 896
@@ -920,7 +920,7 @@ Sdisilk www.sdisilk.com/
920 SDI Silk 200 SDI Input Card 920 SDI Silk 200 SDI Input Card
921 921
922www.euresys.com 922www.euresys.com
923 PICOLO series 923 PICOLO series
924 924
925PMC/Pace 925PMC/Pace
926www.pacecom.co.uk website closed 926www.pacecom.co.uk website closed
diff --git a/Documentation/video4linux/not-in-cx2388x-datasheet.txt b/Documentation/video4linux/not-in-cx2388x-datasheet.txt
index 96b638b5ba1d..edbfe744d21d 100644
--- a/Documentation/video4linux/not-in-cx2388x-datasheet.txt
+++ b/Documentation/video4linux/not-in-cx2388x-datasheet.txt
@@ -34,4 +34,8 @@ MO_OUTPUT_FORMAT (0x310164)
34 2: HACTEXT 34 2: HACTEXT
35 1: HSFMT 35 1: HSFMT
36 36
370x47 is the sync byte for MPEG-2 transport stream packets.
38Datasheet incorrectly states to use 47 decimal. 188 is the length.
39All DVB compliant frontends output packets with this start code.
40
37================================================================================= 41=================================================================================