aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2004-11-08 05:19:37 -0500
committerLen Brown <len.brown@intel.com>2004-11-08 05:19:37 -0500
commitdad99cb437e463e628e406c7c1cf2d90661abe77 (patch)
tree0050dcba3b43e49661c61aa075dcae896f04e8c8 /Documentation
parent272dacf79cd9b36957c49b70337462b131fb293a (diff)
parentf199195e181f3c004e7a7a1b7ebfd7707c4e3e2a (diff)
downloadhistory-dad99cb437e463e628e406c7c1cf2d90661abe77.tar.gz
Merge
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/procfs-guide.tmpl4
-rw-r--r--Documentation/RCU/listRCU.txt2
-rw-r--r--Documentation/arm/Samsung-S3C24XX/Suspend.txt24
-rw-r--r--Documentation/filesystems/devfs/ChangeLog2
-rw-r--r--Documentation/kernel-parameters.txt16
-rw-r--r--Documentation/prio_tree.txt107
-rw-r--r--Documentation/sonypi.txt51
-rw-r--r--Documentation/tipar.txt26
-rw-r--r--Documentation/video4linux/meye.txt38
9 files changed, 199 insertions, 71 deletions
diff --git a/Documentation/DocBook/procfs-guide.tmpl b/Documentation/DocBook/procfs-guide.tmpl
index 669b0466a7015e..34206230c7199c 100644
--- a/Documentation/DocBook/procfs-guide.tmpl
+++ b/Documentation/DocBook/procfs-guide.tmpl
@@ -100,8 +100,8 @@
<para>
I'd like to thank Jeff Garzik
<email>jgarzik@pobox.com</email> and Alexander Viro
- <email>viro@math.psu.edu</email> for their input, Tim Waugh
- <email>twaugh@redhat.com</email> for his <ulink
+ <email>viro@parcelfarce.linux.theplanet.co.uk</email> for their input,
+ Tim Waugh <email>twaugh@redhat.com</email> for his <ulink
url="http://people.redhat.com/twaugh/docbook/selfdocbook/">Selfdocbook</ulink>,
and Marc Joosen <email>marcj@historia.et.tudelft.nl</email> for
proofreading.
diff --git a/Documentation/RCU/listRCU.txt b/Documentation/RCU/listRCU.txt
index 46950afda25f44..bda6ead69bd0d8 100644
--- a/Documentation/RCU/listRCU.txt
+++ b/Documentation/RCU/listRCU.txt
@@ -82,7 +82,7 @@ lock might be used as follows for deletion and insertion:
list_for_each_entry(e, list, list) {
if (!audit_compare_rule(rule, &e->rule)) {
list_del(&e->list);
- call_rcu(&e->rcu, audit_free_rule, e);
+ write_unlock(&auditsc_lock);
return 0;
}
}
diff --git a/Documentation/arm/Samsung-S3C24XX/Suspend.txt b/Documentation/arm/Samsung-S3C24XX/Suspend.txt
index 59d4bad5b43ecc..9966156c2d5005 100644
--- a/Documentation/arm/Samsung-S3C24XX/Suspend.txt
+++ b/Documentation/arm/Samsung-S3C24XX/Suspend.txt
@@ -33,7 +33,8 @@ Resuming
code to resume Linux operation.
GSTATUS4 is currently left alone by the sleep code, and is free to
- use for any other purposes.
+ use for any other purposes (for example, the EB2410ITX uses this to
+ save memory configuration in).
Machine Support
@@ -41,9 +42,9 @@ Machine Support
The machine specific functions must call the s3c2410_pm_init() function
to say that it's bootloader is capable of resuming. This can be as
- simple as adding the following to the file:
+ simple as adding the following to the machine's definition:
- late_initcall(s3c2410_pm_init);
+ INITMACHINE(s3c2410_pm_init)
A board can do its own setup before calling s3c2410_pm_init, if it
needs to setup anything else for power management support.
@@ -52,6 +53,23 @@ Machine Support
saving the resume address, if your board requires it, then contact
the maintainer and discuss what is required.
+ Note, the origianal method of adding an late_initcall() is wrong,
+ and will end up initialising all compiled machine's pm init!
+
+
+Debugging
+---------
+
+ There are several important things to rember when using PM suspend:
+
+ 1) The uart drivers will disable the clocks to the UART blocks when
+ suspending, which means that use of printascii() or similar direct
+ access to the UARTs will cause the debug to stop.
+
+ 2) Whilst the pm code itself will attempt to re-enabled the UART clocks,
+ care should be taken that any external clock sources that the UARTs
+ rely on are still enabled at that point
+
Configuration
-------------
diff --git a/Documentation/filesystems/devfs/ChangeLog b/Documentation/filesystems/devfs/ChangeLog
index 12583144e06d21..e5aba5246d7c93 100644
--- a/Documentation/filesystems/devfs/ChangeLog
+++ b/Documentation/filesystems/devfs/ChangeLog
@@ -1632,7 +1632,7 @@ Changes for patch v177
- Fixed bugs in handling symlinks: could leak or cause Oops
- Cleaned up directory handling by separating fops
- Thanks to Alexander Viro <viro@math.psu.edu>
+ Thanks to Alexander Viro <viro@parcelfarce.linux.theplanet.co.uk>
===============================================================================
Changes for patch v178
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index f9520374a47ec3..2807201154522d 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -701,7 +701,7 @@ running once the system is up.
[KNL,ACPI] Mark specific memory as reserved.
Region of memory to be used, from ss to ss+nn.
- meye= [HW] Set MotionEye Camera parameters
+ meye.*= [HW] Set MotionEye Camera parameters
See Documentation/video4linux/meye.txt.
mga= [HW,DRM]
@@ -866,6 +866,16 @@ running once the system is up.
order they are specified on the command
line, starting with parport0.
+ parport_init_mode=
+ [HW,PPT] Configure VIA parallel port to
+ operate in specific mode. This is
+ necessary on Pegasos computer where
+ firmware has no options for setting up
+ parallel port mode and sets it to
+ spp. Currently this function knows
+ 686a and 8231 chips.
+ Format: [spp|ps2|epp|ecp|ecpepp]
+
pas2= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma16>,<sb_io>,<sb_irq>,<sb_dma>,<sb_dma16>
@@ -1020,10 +1030,6 @@ running once the system is up.
New name for the ramdisk parameter.
See Documentation/ramdisk.txt.
- ramdisk_start= [RAM] Starting block of RAM disk image (so you can
- place it after the kernel image on a boot floppy).
- See Documentation/ramdisk.txt.
-
reboot= [BUGS=IA-32,BUGS=ARM,BUGS=IA-64] Rebooting mode
Format: <reboot_mode>[,<reboot_mode2>[,...]]
See arch/*/kernel/reboot.c.
diff --git a/Documentation/prio_tree.txt b/Documentation/prio_tree.txt
new file mode 100644
index 00000000000000..2fbb0c49bc5b6d
--- /dev/null
+++ b/Documentation/prio_tree.txt
@@ -0,0 +1,107 @@
+The prio_tree.c code indexes vmas using 3 different indexes:
+ * heap_index = vm_pgoff + vm_size_in_pages : end_vm_pgoff
+ * radix_index = vm_pgoff : start_vm_pgoff
+ * size_index = vm_size_in_pages
+
+A regular radix-priority-search-tree indexes vmas using only heap_index and
+radix_index. The conditions for indexing are:
+ * ->heap_index >= ->left->heap_index &&
+ ->heap_index >= ->right->heap_index
+ * if (->heap_index == ->left->heap_index)
+ then ->radix_index < ->left->radix_index;
+ * if (->heap_index == ->right->heap_index)
+ then ->radix_index < ->right->radix_index;
+ * nodes are hashed to left or right subtree using radix_index
+ similar to a pure binary radix tree.
+
+A regular radix-priority-search-tree helps to store and query
+intervals (vmas). However, a regular radix-priority-search-tree is only
+suitable for storing vmas with different radix indices (vm_pgoff).
+
+Therefore, the prio_tree.c extends the regular radix-priority-search-tree
+to handle many vmas with the same vm_pgoff. Such vmas are handled in
+2 different ways: 1) All vmas with the same radix _and_ heap indices are
+linked using vm_set.list, 2) if there are many vmas with the same radix
+index, but different heap indices and if the regular radix-priority-search
+tree cannot index them all, we build an overflow-sub-tree that indexes such
+vmas using heap and size indices instead of heap and radix indices. For
+example, in the figure below some vmas with vm_pgoff = 0 (zero) are
+indexed by regular radix-priority-search-tree whereas others are pushed
+into an overflow-subtree. Note that all vmas in an overflow-sub-tree have
+the same vm_pgoff (radix_index) and if necessary we build different
+overflow-sub-trees to handle each possible radix_index. For example,
+in figure we have 3 overflow-sub-trees corresponding to radix indices
+0, 2, and 4.
+
+In the final tree the first few (prio_tree_root->index_bits) levels
+are indexed using heap and radix indices whereas the overflow-sub-trees below
+those levels (i.e. levels prio_tree_root->index_bits + 1 and higher) are
+indexed using heap and size indices. In overflow-sub-trees the size_index
+is used for hashing the nodes to appropriate places.
+
+Now, an example prio_tree:
+
+ vmas are represented [radix_index, size_index, heap_index]
+ i.e., [start_vm_pgoff, vm_size_in_pages, end_vm_pgoff]
+
+level prio_tree_root->index_bits = 3
+-----
+ _
+ 0 [0,7,7] |
+ / \ |
+ ------------------ ------------ | Regular
+ / \ | radix priority
+ 1 [1,6,7] [4,3,7] | search tree
+ / \ / \ |
+ ------- ----- ------ ----- | heap-and-radix
+ / \ / \ | indexed
+ 2 [0,6,6] [2,5,7] [5,2,7] [6,1,7] |
+ / \ / \ / \ / \ |
+ 3 [0,5,5] [1,5,6] [2,4,6] [3,4,7] [4,2,6] [5,1,6] [6,0,6] [7,0,7] |
+ / / / _
+ / / / _
+ 4 [0,4,4] [2,3,5] [4,1,5] |
+ / / / |
+ 5 [0,3,3] [2,2,4] [4,0,4] | Overflow-sub-trees
+ / / |
+ 6 [0,2,2] [2,1,3] | heap-and-size
+ / / | indexed
+ 7 [0,1,1] [2,0,2] |
+ / |
+ 8 [0,0,0] |
+ _
+
+Note that we use prio_tree_root->index_bits to optimize the height
+of the heap-and-radix indexed tree. Since prio_tree_root->index_bits is
+set according to the maximum end_vm_pgoff mapped, we are sure that all
+bits (in vm_pgoff) above prio_tree_root->index_bits are 0 (zero). Therefore,
+we only use the first prio_tree_root->index_bits as radix_index.
+Whenever index_bits is increased in prio_tree_expand, we shuffle the tree
+to make sure that the first prio_tree_root->index_bits levels of the tree
+is indexed properly using heap and radix indices.
+
+We do not optimize the height of overflow-sub-trees using index_bits.
+The reason is: there can be many such overflow-sub-trees and all of
+them have to be suffled whenever the index_bits increases. This may involve
+walking the whole prio_tree in prio_tree_insert->prio_tree_expand code
+path which is not desirable. Hence, we do not optimize the height of the
+heap-and-size indexed overflow-sub-trees using prio_tree->index_bits.
+Instead the overflow sub-trees are indexed using full BITS_PER_LONG bits
+of size_index. This may lead to skewed sub-trees because most of the
+higher significant bits of the size_index are likely to be be 0 (zero). In
+the example above, all 3 overflow-sub-trees are skewed. This may marginally
+affect the performance. However, processes rarely map many vmas with the
+same start_vm_pgoff but different end_vm_pgoffs. Therefore, we normally
+do not require overflow-sub-trees to index all vmas.
+
+From the above discussion it is clear that the maximum height of
+a prio_tree can be prio_tree_root->index_bits + BITS_PER_LONG.
+However, in most of the common cases we do not need overflow-sub-trees,
+so the tree height in the common cases will be prio_tree_root->index_bits.
+
+It is fair to mention here that the prio_tree_root->index_bits
+is increased on demand, however, the index_bits is not decreased when
+vmas are removed from the prio_tree. That's tricky to do. Hence, it's
+left as a home work problem.
+
+
diff --git a/Documentation/sonypi.txt b/Documentation/sonypi.txt
index a50949371b1bad..0f3b2405d09edf 100644
--- a/Documentation/sonypi.txt
+++ b/Documentation/sonypi.txt
@@ -1,6 +1,6 @@
Sony Programmable I/O Control Device Driver Readme
--------------------------------------------------
- Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
+ Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
Copyright (C) 2001-2002 Alcôve <www.alcove.com>
Copyright (C) 2001 Michael Ashley <m.ashley@unsw.edu.au>
Copyright (C) 2001 Junichi Morita <jun1m@mars.dti.ne.jp>
@@ -23,16 +23,18 @@ generate, like:
Those events (see linux/sonypi.h) can be polled using the character device node
/dev/sonypi (major 10, minor auto allocated or specified as a option).
-
A simple daemon which translates the jogdial movements into mouse wheel events
can be downloaded at: <http://popies.net/sonypi/>
+Another option to intercept the events is to get them directly through the
+input layer.
+
This driver supports also some ioctl commands for setting the LCD screen
-brightness and querying the batteries charge information (some more
+brightness and querying the batteries charge information (some more
commands may be added in the future).
This driver can also be used to set the camera controls on Picturebook series
-(brightness, contrast etc), and is used by the video4linux driver for the
+(brightness, contrast etc), and is used by the video4linux driver for the
Motion Eye camera.
Please note that this driver was created by reverse engineering the Windows
@@ -47,7 +49,7 @@ module argument syntax (<param>=<value> when passing the option to the
module or sonypi.<param>=<value> on the kernel boot line when sonypi is
statically linked into the kernel). Those options are:
- minor: minor number of the misc device /dev/sonypi,
+ minor: minor number of the misc device /dev/sonypi,
default is -1 (automatic allocation, see /proc/misc
or kernel logs)
@@ -59,14 +61,14 @@ statically linked into the kernel). Those options are:
get enabled unless you set this parameter to 1.
Do not use this option unless it's actually necessary,
some Vaio models don't deal well with this option.
- This option is available only if the kernel is
+ This option is available only if the kernel is
compiled without ACPI support (since it conflicts
- with it and it shouldn't be required anyway if
+ with it and it shouldn't be required anyway if
ACPI is already enabled).
- verbose: set to 1 to print unknown events received from the
+ verbose: set to 1 to print unknown events received from the
sonypi device.
- set to 2 to print all events received from the
+ set to 2 to print all events received from the
sonypi device.
compat: uses some compatibility code for enabling the sonypi
@@ -75,14 +77,15 @@ statically linked into the kernel). Those options are:
add this option and report to the author.
mask: event mask telling the driver what events will be
- reported to the user. This parameter is required for some
- Vaio models where the hardware reuses values used in
- other Vaio models (like the FX series who does not
- have a jogdial but reuses the jogdial events for
+ reported to the user. This parameter is required for
+ some Vaio models where the hardware reuses values
+ used in other Vaio models (like the FX series who does
+ not have a jogdial but reuses the jogdial events for
programmable keys events). The default event mask is
- set to 0xffffffff, meaning that all possible events will be
- tried. You can use the following bits to construct
- your own event mask (from drivers/char/sonypi.h):
+ set to 0xffffffff, meaning that all possible events
+ will be tried. You can use the following bits to
+ construct your own event mask (from
+ drivers/char/sonypi.h):
SONYPI_JOGGER_MASK 0x0001
SONYPI_CAPTURE_MASK 0x0002
SONYPI_FNKEY_MASK 0x0004
@@ -97,10 +100,10 @@ statically linked into the kernel). Those options are:
SONYPI_MEMORYSTICK_MASK 0x0800
SONYPI_BATTERY_MASK 0x1000
- useinput: if set (which is the default) jogdial events are
- forwarded to the input subsystem as mouse wheel
- events.
-
+ useinput: if set (which is the default) two input devices are
+ created, one which interprets the jogdial events as
+ mouse events, the other one which acts like a
+ keyboard reporting the pressing of the special keys.
Module use:
-----------
@@ -123,17 +126,17 @@ Bugs:
external monitor on/off. There is no workaround yet, since this
driver disables all APM management for those keys, by enabling the
ACPI management (and the ACPI core stuff is not complete yet). If
- you have one of those laptops with working Fn keys and want to
+ you have one of those laptops with working Fn keys and want to
continue to use them, don't use this driver.
- some users reported that the laptop speed is lower (dhrystone
tested) when using the driver with the fnkeyinit parameter. I cannot
reproduce it on my laptop and not all users have this problem.
- This happens because the fnkeyinit parameter enables the ACPI
- mode (but without additional ACPI control, like processor
+ This happens because the fnkeyinit parameter enables the ACPI
+ mode (but without additional ACPI control, like processor
speed handling etc). Use ACPI instead of APM if it works on your
laptop.
-
+
- since all development was done by reverse engineering, there is
_absolutely no guarantee_ that this driver will not crash your
laptop. Permanently.
diff --git a/Documentation/tipar.txt b/Documentation/tipar.txt
index 773b9a2483eba7..67133baef6ef21 100644
--- a/Documentation/tipar.txt
+++ b/Documentation/tipar.txt
@@ -4,7 +4,7 @@
Author: Romain Lievin
-Homepage: http://lpg.ticalc.org/prj_dev
+Homepage: http://lpg.ticalc.org/prj_tidev/index.html
INTRODUCTION:
@@ -12,31 +12,30 @@ INTRODUCTION:
This is a driver for the very common home-made parallel link cable, a cable
designed for connecting TI8x/9x graphing calculators (handhelds) to a computer
or workstation (Alpha, Sparc). Given that driver is built on parport, the
-parallel port abstraction layer, this driver is independent of the platform.
+parallel port abstraction layer, this driver is architecture-independent.
It can also be used with another device plugged on the same port (such as a
-ZIP drive). I have a 100MB ZIP and both of them work fine !
+ZIP drive). I have a 100MB ZIP and both of them work fine!
If you need more information, please visit the 'TI drivers' homepage at the URL
above.
WHAT YOU NEED:
-A TI calculator of course and a program capable to communicate with your
-calculator.
-TiLP will work for sure (since I am his developer !). yal92 may be able to use
+A TI calculator and a program capable of communicating with your calculator.
+
+TiLP will work for sure (since I am its developer!). yal92 may be able to use
it by changing tidev for tipar (may require some hacking...).
HOW TO USE IT:
You must have first compiled parport support (CONFIG_PARPORT_DEV): either
compiled in your kernel, either as a module.
-This driver supports the new device hierarchy (devfs).
-Next, (as root) from your appropriate modules directory (lib/modules/2.5.XX):
+Next, (as root):
modprobe parport
- insmod tipar.o
+ modprobe tipar
If it is not already there (it usually is), create the device:
@@ -47,14 +46,14 @@ If it is not already there (it usually is), create the device:
You will have to set permissions on this device to allow you to read/write
from it:
- chmod 666 /dev/tipar?
+ chmod 666 /dev/tipar[0..2]
Now you are ready to run a linking program such as TiLP. Be sure to configure
it properly (RTFM).
MODULE PARAMETERS:
- You can set these with: insmod tipar NAME=VALUE
+ You can set these with: modprobe tipar NAME=VALUE
There is currently no way to set these on a per-cable basis.
NAME: timeout
@@ -66,11 +65,12 @@ MODULE PARAMETERS:
NAME: delay
TYPE: integer
DEFAULT: 10
- DESC: Inter-bit delay in micro-seconds. An lower value gives an higher data
+ DESC: Inter-bit delay in micro-seconds. A lower value gives an higher data
rate but makes transmission less reliable.
These parameters can be changed at run time by any program via ioctl(2) calls
-as listed in ./include/linux/ticable.h
+as listed in ./include/linux/ticable.h.
+
Rather than write 50 pages describing the ioctl() and so on, it is
perhaps more useful you look at ticables library (dev_link.c) that demonstrates
how to use them, and demonstrates the features of the driver. This is
diff --git a/Documentation/video4linux/meye.txt b/Documentation/video4linux/meye.txt
index 5adcd25024bb43..2137da97552fb6 100644
--- a/Documentation/video4linux/meye.txt
+++ b/Documentation/video4linux/meye.txt
@@ -1,12 +1,12 @@
Vaio Picturebook Motion Eye Camera Driver Readme
------------------------------------------------
- Copyright (C) 2001-2003 Stelian Pop <stelian@popies.net>
+ Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net>
Copyright (C) 2001-2002 Alcôve <www.alcove.com>
Copyright (C) 2000 Andrew Tridgell <tridge@samba.org>
This driver enable the use of video4linux compatible applications with the
-Motion Eye camera. This driver requires the "Sony Vaio Programmable I/O
-Control Device" driver (which can be found in the "Character drivers"
+Motion Eye camera. This driver requires the "Sony Vaio Programmable I/O
+Control Device" driver (which can be found in the "Character drivers"
section of the kernel configuration utility) to be compiled and installed
(using its "camera=1" parameter).
@@ -24,7 +24,7 @@ This driver supports the 'second' version of the MotionEye camera :)
The first version was connected directly on the video bus of the Neomagic
video card and is unsupported.
-The second one, made by Kawasaki Steel is fully supported by this
+The second one, made by Kawasaki Steel is fully supported by this
driver (PCI vendor/device is 0x136b/0xff01)
The third one, present in recent (more or less last year) Picturebooks
@@ -41,13 +41,12 @@ little information if any is available for this camera
Driver options:
---------------
-Several options can be passed to the meye driver, either by adding them
-to /etc/modprobe.conf file, when the driver is compiled as a module, or
-by adding the following to the kernel command line (in your bootloader):
+Several options can be passed to the meye driver using the standard
+module argument syntax (<param>=<value> when passing the option to the
+module or meye.<param>=<value> on the kernel boot line when meye is
+statically linked into the kernel). Those options are:
- meye=gbuffers[,gbufsize[,video_nr]]
-
-where:
+ forcev4l1: force use of V4L1 API instead of V4L2
gbuffers: number of capture buffers, default is 2 (32 max)
@@ -81,8 +80,9 @@ Usage:
Private API:
------------
- The driver supports frame grabbing with the video4linux API, so
- all video4linux tools (like xawtv) should work with this driver.
+ The driver supports frame grabbing with the video4linux API
+ (either v4l1 or v4l2), so all video4linux tools (like xawtv)
+ should work with this driver.
Besides the video4linux interface, the driver has a private interface
for accessing the Motion Eye extended parameters (camera sharpness,
@@ -116,7 +116,7 @@ Private API:
MEYEIOC_STILLJCAPT
Takes a snapshot in an uncompressed or compressed jpeg format.
This ioctl blocks until the snapshot is done and returns (for
- jpeg snapshot) the size of the image. The image data is
+ jpeg snapshot) the size of the image. The image data is
available from the first mmap'ed buffer.
Look at the 'motioneye' application code for an actual example.
@@ -124,13 +124,7 @@ Private API:
Bugs / Todo:
------------
- - overlay output is not supported (although the camera is capable of).
- (it should not be too hard to to it, provided we found how...)
-
- - mjpeg hardware playback doesn't work (depends on overlay...)
+ - the driver could be much cleaned up by removing the v4l1 support.
+ However, this means all v4l1-only applications will stop working.
- - rewrite the driver to use some common video4linux API for snapshot
- and mjpeg capture. Unfortunately, video4linux1 does not permit it,
- the BUZ API seems to be targeted to TV cards only. The video4linux 2
- API may be an option, if it goes into the kernel (maybe 2.5
- material ?).
+ - 'motioneye' still uses the meye private v4l1 API extensions.