Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 222895
b: refs/heads/master
c: ac70eb1
h: refs/heads/master
i:
  222893: 9c4d4cc
  222891: 5edbec4
  222887: ad00104
  222879: aafb337
v: v3
  • Loading branch information
Daniel T Chen authored and Takashi Iwai committed Nov 29, 2010
1 parent 7255db5 commit f0e3015
Show file tree
Hide file tree
Showing 458 changed files with 5,741 additions and 12,761 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 88063dd69b124721e18a59535d4f35266fcb867f
refs/heads/master: ac70eb1305d5a81efd1e32327d7e79be15a63a5a
83 changes: 0 additions & 83 deletions trunk/Documentation/ABI/testing/sysfs-bus-rbd

This file was deleted.

4 changes: 4 additions & 0 deletions trunk/Documentation/DocBook/sh.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@
</sect2>
</sect1>
</chapter>
<chapter id="clk">
<title>Clock Framework Extensions</title>
!Iinclude/linux/sh_clk.h
</chapter>
<chapter id="mach">
<title>Machine Specific Interfaces</title>
<sect1 id="dreamcast">
Expand Down
129 changes: 129 additions & 0 deletions trunk/Documentation/driver-model/interface.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@

Device Interfaces

Introduction
~~~~~~~~~~~~

Device interfaces are the logical interfaces of device classes that correlate
directly to userspace interfaces, like device nodes.

Each device class may have multiple interfaces through which you can
access the same device. An input device may support the mouse interface,
the 'evdev' interface, and the touchscreen interface. A SCSI disk would
support the disk interface, the SCSI generic interface, and possibly a raw
device interface.

Device interfaces are registered with the class they belong to. As devices
are added to the class, they are added to each interface registered with
the class. The interface is responsible for determining whether the device
supports the interface or not.


Programming Interface
~~~~~~~~~~~~~~~~~~~~~

struct device_interface {
char * name;
rwlock_t lock;
u32 devnum;
struct device_class * devclass;

struct list_head node;
struct driver_dir_entry dir;

int (*add_device)(struct device *);
int (*add_device)(struct intf_data *);
};

int interface_register(struct device_interface *);
void interface_unregister(struct device_interface *);


An interface must specify the device class it belongs to. It is added
to that class's list of interfaces on registration.


Interfaces can be added to a device class at any time. Whenever it is
added, each device in the class is passed to the interface's
add_device callback. When an interface is removed, each device is
removed from the interface.


Devices
~~~~~~~
Once a device is added to a device class, it is added to each
interface that is registered with the device class. The class
is expected to place a class-specific data structure in
struct device::class_data. The interface can use that (along with
other fields of struct device) to determine whether or not the driver
and/or device support that particular interface.


Data
~~~~

struct intf_data {
struct list_head node;
struct device_interface * intf;
struct device * dev;
u32 intf_num;
};

int interface_add_data(struct interface_data *);

The interface is responsible for allocating and initializing a struct
intf_data and calling interface_add_data() to add it to the device's list
of interfaces it belongs to. This list will be iterated over when the device
is removed from the class (instead of all possible interfaces for a class).
This structure should probably be embedded in whatever per-device data
structure the interface is allocating anyway.

Devices are enumerated within the interface. This happens in interface_add_data()
and the enumerated value is stored in the struct intf_data for that device.

sysfs
~~~~~
Each interface is given a directory in the directory of the device
class it belongs to:

Interfaces get a directory in the class's directory as well:

class/
`-- input
|-- devices
|-- drivers
|-- mouse
`-- evdev

When a device is added to the interface, a symlink is created that points
to the device's directory in the physical hierarchy:

class/
`-- input
|-- devices
| `-- 1 -> ../../../root/pci0/00:1f.0/usb_bus/00:1f.2-1:0/
|-- drivers
| `-- usb:usb_mouse -> ../../../bus/drivers/usb_mouse/
|-- mouse
| `-- 1 -> ../../../root/pci0/00:1f.0/usb_bus/00:1f.2-1:0/
`-- evdev
`-- 1 -> ../../../root/pci0/00:1f.0/usb_bus/00:1f.2-1:0/


Future Plans
~~~~~~~~~~~~
A device interface is correlated directly with a userspace interface
for a device, specifically a device node. For instance, a SCSI disk
exposes at least two interfaces to userspace: the standard SCSI disk
interface and the SCSI generic interface. It might also export a raw
device interface.

Many interfaces have a major number associated with them and each
device gets a minor number. Or, multiple interfaces might share one
major number, and each will receive a range of minor numbers (like in
the case of input devices).

These major and minor numbers could be stored in the interface
structure. Major and minor allocations could happen when the interface
is registered with the class, or via a helper function.

8 changes: 4 additions & 4 deletions trunk/Documentation/edac.txt
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ csrow3.
The representation of the above is reflected in the directory tree
in EDAC's sysfs interface. Starting in directory
/sys/devices/system/edac/mc each memory controller will be represented
by its own 'mcX' directory, where 'X' is the index of the MC.
by its own 'mcX' directory, where 'X" is the index of the MC.


..../edac/mc/
Expand All @@ -207,7 +207,7 @@ by its own 'mcX' directory, where 'X' is the index of the MC.
....

Under each 'mcX' directory each 'csrowX' is again represented by a
'csrowX', where 'X' is the csrow index:
'csrowX', where 'X" is the csrow index:


.../mc/mc0/
Expand All @@ -232,7 +232,7 @@ EDAC control and attribute files.


In 'mcX' directories are EDAC control and attribute files for
this 'X' instance of the memory controllers:
this 'X" instance of the memory controllers:


Counter reset control file:
Expand Down Expand Up @@ -343,7 +343,7 @@ Sdram memory scrubbing rate:
'csrowX' DIRECTORIES

In the 'csrowX' directories are EDAC control and attribute files for
this 'X' instance of csrow:
this 'X" instance of csrow:


Total Uncorrectable Errors count attribute file:
Expand Down
32 changes: 7 additions & 25 deletions trunk/Documentation/fb/00-INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -4,41 +4,33 @@ please mail me.
Geert Uytterhoeven <geert@linux-m68k.org>

00-INDEX
- this file.
- this file
arkfb.txt
- info on the fbdev driver for ARK Logic chips.
aty128fb.txt
- info on the ATI Rage128 frame buffer driver.
cirrusfb.txt
- info on the driver for Cirrus Logic chipsets.
cmap_xfbdev.txt
- an introduction to fbdev's cmap structures.
deferred_io.txt
- an introduction to deferred IO.
efifb.txt
- info on the EFI platform driver for Intel based Apple computers.
ep93xx-fb.txt
- info on the driver for EP93xx LCD controller.
fbcon.txt
- intro to and usage guide for the framebuffer console (fbcon).
framebuffer.txt
- introduction to frame buffer devices.
gxfb.txt
- info on the framebuffer driver for AMD Geode GX2 based processors.
imacfb.txt
- info on the generic EFI platform driver for Intel based Macs.
intel810.txt
- documentation for the Intel 810/815 framebuffer driver.
intelfb.txt
- docs for Intel 830M/845G/852GM/855GM/865G/915G/945G fb driver.
internals.txt
- quick overview of frame buffer device internals.
lxfb.txt
- info on the framebuffer driver for AMD Geode LX based processors.
matroxfb.txt
- info on the Matrox framebuffer driver for Alpha, Intel and PPC.
metronomefb.txt
- info on the driver for the Metronome display controller.
modedb.txt
- info on the video mode database.
matroxfb.txt
- info on the Matrox frame buffer driver.
pvr2fb.txt
- info on the PowerVR 2 frame buffer driver.
pxafb.txt
Expand All @@ -47,23 +39,13 @@ s3fb.txt
- info on the fbdev driver for S3 Trio/Virge chips.
sa1100fb.txt
- information about the driver for the SA-1100 LCD controller.
sh7760fb.txt
- info on the SH7760/SH7763 integrated LCDC Framebuffer driver.
sisfb.txt
- info on the framebuffer device driver for various SiS chips.
sstfb.txt
- info on the frame buffer driver for 3dfx' Voodoo Graphics boards.
tgafb.txt
- info on the TGA (DECChip 21030) frame buffer driver.
tridentfb.txt
info on the framebuffer driver for some Trident chip based cards.
uvesafb.txt
- info on the userspace VESA (VBE2+ compliant) frame buffer device.
- info on the TGA (DECChip 21030) frame buffer driver
vesafb.txt
- info on the VESA frame buffer device.
viafb.modes
- list of modes for VIA Integration Graphic Chip.
viafb.txt
- info on the VIA Integration Graphic Chip console framebuffer driver.
- info on the VESA frame buffer device
vt8623fb.txt
- info on the fb driver for the graphics core in VIA VT8623 chipsets.
9 changes: 5 additions & 4 deletions trunk/Documentation/filesystems/vfs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -660,10 +660,11 @@ struct address_space_operations {
releasepage: releasepage is called on PagePrivate pages to indicate
that the page should be freed if possible. ->releasepage
should remove any private data from the page and clear the
PagePrivate flag. If releasepage() fails for some reason, it must
indicate failure with a 0 return value.
releasepage() is used in two distinct though related cases. The
first is when the VM finds a clean page with no active users and
PagePrivate flag. It may also remove the page from the
address_space. If this fails for some reason, it may indicate
failure with a 0 return value.
This is used in two distinct though related cases. The first
is when the VM finds a clean page with no active users and
wants to make it a free page. If ->releasepage succeeds, the
page will be removed from the address_space and become free.

Expand Down
5 changes: 0 additions & 5 deletions trunk/Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2385,11 +2385,6 @@ and is between 256 and 4096 characters. It is defined in the file
improve throughput, but will also increase the
amount of memory reserved for use by the client.

swapaccount[=0|1]
[KNL] Enable accounting of swap in memory resource
controller if no parameter or 1 is given or disable
it if 0 is given (See Documentation/cgroups/memory.txt)

swiotlb= [IA-64] Number of I/O TLB slabs

switches= [HW,M68k]
Expand Down
1 change: 0 additions & 1 deletion trunk/Documentation/networking/ip-sysctl.txt
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@ tcp_adv_win_scale - INTEGER
Count buffering overhead as bytes/2^tcp_adv_win_scale
(if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale),
if it is <= 0.
Possible values are [-31, 31], inclusive.
Default: 2

tcp_allowed_congestion_control - STRING
Expand Down
Loading

0 comments on commit f0e3015

Please sign in to comment.