Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0107b3cf authored by David Woodhouse's avatar David Woodhouse
Browse files

Merge with master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

parents 1c3f45ab 9ee1c939
Loading
Loading
Loading
Loading
+1 −5
Original line number Original line Diff line number Diff line
@@ -2475,13 +2475,9 @@ S: Potsdam, New York 13676
S: USA
S: USA


N: Dave Neuer
N: Dave Neuer
E: dneuer@innovation-charter.com
E: dave.neuer@pobox.com
E: mr_fred_smoothie@yahoo.com
D: Helped implement support for Compaq's H31xx series iPAQs
D: Helped implement support for Compaq's H31xx series iPAQs
D: Other mostly minor tweaks & bugfixes
D: Other mostly minor tweaks & bugfixes
S: 325 E. Main St., Suite 3
S: Carnegie, PA 15105
S: USA


N: Michael Neuffer
N: Michael Neuffer
E: mike@i-Connect.Net
E: mike@i-Connect.Net
+124 −32
Original line number Original line Diff line number Diff line
@@ -14,7 +14,7 @@
  </authorgroup>
  </authorgroup>


  <copyright>
  <copyright>
   <year>2003</year>
   <year>2003-2005</year>
   <holder>Jeff Garzik</holder>
   <holder>Jeff Garzik</holder>
  </copyright>
  </copyright>


@@ -44,30 +44,38 @@


<toc></toc>
<toc></toc>


  <chapter id="libataThanks">
  <chapter id="libataIntroduction">
     <title>Thanks</title>
     <title>Introduction</title>
  <para>
  The bulk of the ATA knowledge comes thanks to long conversations with
  Andre Hedrick (www.linux-ide.org).
  </para>
  <para>
  <para>
  Thanks to Alan Cox for pointing out similarities 
  libATA is a library used inside the Linux kernel to support ATA host
  between SATA and SCSI, and in general for motivation to hack on
  controllers and devices.  libATA provides an ATA driver API, class
  libata.
  transports for ATA and ATAPI devices, and SCSI&lt;-&gt;ATA translation
  for ATA devices according to the T10 SAT specification.
  </para>
  </para>
  <para>
  <para>
  libata's device detection
  This Guide documents the libATA driver API, library functions, library
  method, ata_pio_devchk, and in general all the early probing was
  internals, and a couple sample ATA low-level drivers.
  based on extensive study of Hale Landis's probe/reset code in his
  ATADRVR driver (www.ata-atapi.com).
  </para>
  </para>
  </chapter>
  </chapter>


  <chapter id="libataDriverApi">
  <chapter id="libataDriverApi">
     <title>libata Driver API</title>
     <title>libata Driver API</title>
     <para>
     struct ata_port_operations is defined for every low-level libata
     hardware driver, and it controls how the low-level driver
     interfaces with the ATA and SCSI layers.
     </para>
     <para>
     FIS-based drivers will hook into the system with ->qc_prep() and
     ->qc_issue() high-level hooks.  Hardware which behaves in a manner
     similar to PCI IDE hardware may utilize several generic helpers,
     defining at a bare minimum the bus I/O addresses of the ATA shadow
     register blocks.
     </para>
     <sect1>
     <sect1>
        <title>struct ata_port_operations</title>
        <title>struct ata_port_operations</title>


	<sect2><title>Disable ATA port</title>
	<programlisting>
	<programlisting>
void (*port_disable) (struct ata_port *);
void (*port_disable) (struct ata_port *);
	</programlisting>
	</programlisting>
@@ -78,6 +86,9 @@ void (*port_disable) (struct ata_port *);
	unplug).
	unplug).
	</para>
	</para>


	</sect2>

	<sect2><title>Post-IDENTIFY device configuration</title>
	<programlisting>
	<programlisting>
void (*dev_config) (struct ata_port *, struct ata_device *);
void (*dev_config) (struct ata_port *, struct ata_device *);
	</programlisting>
	</programlisting>
@@ -88,6 +99,9 @@ void (*dev_config) (struct ata_port *, struct ata_device *);
	issue of SET FEATURES - XFER MODE, and prior to operation.
	issue of SET FEATURES - XFER MODE, and prior to operation.
	</para>
	</para>


	</sect2>

	<sect2><title>Set PIO/DMA mode</title>
	<programlisting>
	<programlisting>
void (*set_piomode) (struct ata_port *, struct ata_device *);
void (*set_piomode) (struct ata_port *, struct ata_device *);
void (*set_dmamode) (struct ata_port *, struct ata_device *);
void (*set_dmamode) (struct ata_port *, struct ata_device *);
@@ -108,6 +122,9 @@ void (*post_set_mode) (struct ata_port *ap);
	->set_dma_mode() is only called if DMA is possible.
	->set_dma_mode() is only called if DMA is possible.
	</para>
	</para>


	</sect2>

	<sect2><title>Taskfile read/write</title>
	<programlisting>
	<programlisting>
void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf);
void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf);
void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
@@ -120,6 +137,9 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf);
	taskfile register values.
	taskfile register values.
	</para>
	</para>


	</sect2>

	<sect2><title>ATA command execute</title>
	<programlisting>
	<programlisting>
void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
	</programlisting>
	</programlisting>
@@ -129,17 +149,37 @@ void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf);
	->tf_load(), to be initiated in hardware.
	->tf_load(), to be initiated in hardware.
	</para>
	</para>


	</sect2>

	<sect2><title>Per-cmd ATAPI DMA capabilities filter</title>
	<programlisting>
int (*check_atapi_dma) (struct ata_queued_cmd *qc);
	</programlisting>

	<para>
Allow low-level driver to filter ATA PACKET commands, returning a status
indicating whether or not it is OK to use DMA for the supplied PACKET
command.
	</para>

	</sect2>

	<sect2><title>Read specific ATA shadow registers</title>
	<programlisting>
	<programlisting>
u8   (*check_status)(struct ata_port *ap);
u8   (*check_status)(struct ata_port *ap);
void (*dev_select)(struct ata_port *ap, unsigned int device);
u8   (*check_altstatus)(struct ata_port *ap);
u8   (*check_err)(struct ata_port *ap);
	</programlisting>
	</programlisting>


	<para>
	<para>
	Reads the Status ATA shadow register from hardware.  On some
	Reads the Status/AltStatus/Error ATA shadow register from
	hardware, this has the side effect of clearing the interrupt
	hardware.  On some hardware, reading the Status register has
	condition.
	the side effect of clearing the interrupt condition.
	</para>
	</para>


	</sect2>

	<sect2><title>Select ATA device on bus</title>
	<programlisting>
	<programlisting>
void (*dev_select)(struct ata_port *ap, unsigned int device);
void (*dev_select)(struct ata_port *ap, unsigned int device);
	</programlisting>
	</programlisting>
@@ -147,9 +187,13 @@ void (*dev_select)(struct ata_port *ap, unsigned int device);
	<para>
	<para>
	Issues the low-level hardware command(s) that causes one of N
	Issues the low-level hardware command(s) that causes one of N
	hardware devices to be considered 'selected' (active and
	hardware devices to be considered 'selected' (active and
	available for use) on the ATA bus.
	available for use) on the ATA bus.  This generally has no
meaning on FIS-based devices.
	</para>
	</para>


	</sect2>

	<sect2><title>Reset ATA bus</title>
	<programlisting>
	<programlisting>
void (*phy_reset) (struct ata_port *ap);
void (*phy_reset) (struct ata_port *ap);
	</programlisting>
	</programlisting>
@@ -162,17 +206,31 @@ void (*phy_reset) (struct ata_port *ap);
	functions ata_bus_reset() or sata_phy_reset() for this hook.
	functions ata_bus_reset() or sata_phy_reset() for this hook.
	</para>
	</para>


	</sect2>

	<sect2><title>Control PCI IDE BMDMA engine</title>
	<programlisting>
	<programlisting>
void (*bmdma_setup) (struct ata_queued_cmd *qc);
void (*bmdma_setup) (struct ata_queued_cmd *qc);
void (*bmdma_start) (struct ata_queued_cmd *qc);
void (*bmdma_start) (struct ata_queued_cmd *qc);
void (*bmdma_stop) (struct ata_port *ap);
u8   (*bmdma_status) (struct ata_port *ap);
	</programlisting>
	</programlisting>


	<para>
	<para>
When setting up an IDE BMDMA transaction, these hooks arm
When setting up an IDE BMDMA transaction, these hooks arm
	(->bmdma_setup) and fire (->bmdma_start) the hardware's DMA
(->bmdma_setup), fire (->bmdma_start), and halt (->bmdma_stop)
	engine.
the hardware's DMA engine.  ->bmdma_status is used to read the standard
PCI IDE DMA Status register.
	</para>
	</para>


	<para>
These hooks are typically either no-ops, or simply not implemented, in
FIS-based drivers.
	</para>

	</sect2>

	<sect2><title>High-level taskfile hooks</title>
	<programlisting>
	<programlisting>
void (*qc_prep) (struct ata_queued_cmd *qc);
void (*qc_prep) (struct ata_queued_cmd *qc);
int (*qc_issue) (struct ata_queued_cmd *qc);
int (*qc_issue) (struct ata_queued_cmd *qc);
@@ -190,20 +248,26 @@ int (*qc_issue) (struct ata_queued_cmd *qc);
	->qc_issue is used to make a command active, once the hardware
	->qc_issue is used to make a command active, once the hardware
	and S/G tables have been prepared.  IDE BMDMA drivers use the
	and S/G tables have been prepared.  IDE BMDMA drivers use the
	helper function ata_qc_issue_prot() for taskfile protocol-based
	helper function ata_qc_issue_prot() for taskfile protocol-based
	dispatch.  More advanced drivers roll their own ->qc_issue
	dispatch.  More advanced drivers implement their own ->qc_issue.
	implementation, using this as the "issue new ATA command to
	hardware" hook.
	</para>
	</para>


	</sect2>

	<sect2><title>Timeout (error) handling</title>
	<programlisting>
	<programlisting>
void (*eng_timeout) (struct ata_port *ap);
void (*eng_timeout) (struct ata_port *ap);
	</programlisting>
	</programlisting>


	<para>
	<para>
This is a high level error handling function, called from the
This is a high level error handling function, called from the
	error handling thread, when a command times out.
error handling thread, when a command times out.  Most newer
hardware will implement its own error handling code here.  IDE BMDMA
drivers may use the helper function ata_eng_timeout().
	</para>
	</para>


	</sect2>

	<sect2><title>Hardware interrupt handling</title>
	<programlisting>
	<programlisting>
irqreturn_t (*irq_handler)(int, void *, struct pt_regs *);
irqreturn_t (*irq_handler)(int, void *, struct pt_regs *);
void (*irq_clear) (struct ata_port *);
void (*irq_clear) (struct ata_port *);
@@ -216,6 +280,9 @@ void (*irq_clear) (struct ata_port *);
	is quiet.
	is quiet.
	</para>
	</para>


	</sect2>

	<sect2><title>SATA phy read/write</title>
	<programlisting>
	<programlisting>
u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg);
void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
@@ -227,6 +294,9 @@ void (*scr_write) (struct ata_port *ap, unsigned int sc_reg,
	if ->phy_reset hook called the sata_phy_reset() helper function.
	if ->phy_reset hook called the sata_phy_reset() helper function.
	</para>
	</para>


	</sect2>

	<sect2><title>Init and shutdown</title>
	<programlisting>
	<programlisting>
int (*port_start) (struct ata_port *ap);
int (*port_start) (struct ata_port *ap);
void (*port_stop) (struct ata_port *ap);
void (*port_stop) (struct ata_port *ap);
@@ -240,15 +310,17 @@ void (*host_stop) (struct ata_host_set *host_set);
	tasks.  
	tasks.  
	</para>
	</para>
	<para>
	<para>
	->host_stop() is called when the rmmod or hot unplug process
	begins.  The hook must stop all hardware interrupts, DMA
	engines, etc.
	</para>
	<para>
	->port_stop() is called after ->host_stop().  It's sole function
	->port_stop() is called after ->host_stop().  It's sole function
	is to release DMA/memory resources, now that they are no longer
	is to release DMA/memory resources, now that they are no longer
	actively being used.
	actively being used.
	</para>
	</para>
	<para>
	->host_stop() is called after all ->port_stop() calls
have completed.  The hook must finalize hardware shutdown, release DMA
and other resources, etc.
	</para>

	</sect2>


     </sect1>
     </sect1>
  </chapter>
  </chapter>
@@ -279,4 +351,24 @@ void (*host_stop) (struct ata_host_set *host_set);
!Idrivers/scsi/sata_sil.c
!Idrivers/scsi/sata_sil.c
  </chapter>
  </chapter>


  <chapter id="libataThanks">
     <title>Thanks</title>
  <para>
  The bulk of the ATA knowledge comes thanks to long conversations with
  Andre Hedrick (www.linux-ide.org), and long hours pondering the ATA
  and SCSI specifications.
  </para>
  <para>
  Thanks to Alan Cox for pointing out similarities 
  between SATA and SCSI, and in general for motivation to hack on
  libata.
  </para>
  <para>
  libata's device detection
  method, ata_pio_devchk, and in general all the early probing was
  based on extensive study of Hale Landis's probe/reset code in his
  ATADRVR driver (www.ata-atapi.com).
  </para>
  </chapter>

</book>
</book>
+7 −1
Original line number Original line Diff line number Diff line
@@ -271,7 +271,7 @@ patch, which certifies that you wrote it or otherwise have the right to
pass it on as a open-source patch.  The rules are pretty simple: if you
pass it on as a open-source patch.  The rules are pretty simple: if you
can certify the below:
can certify the below:


        Developer's Certificate of Origin 1.0
        Developer's Certificate of Origin 1.1


        By making a contribution to this project, I certify that:
        By making a contribution to this project, I certify that:


@@ -291,6 +291,12 @@ can certify the below:
            person who certified (a), (b) or (c) and I have not modified
            person who certified (a), (b) or (c) and I have not modified
            it.
            it.


	(d) I understand and agree that this project and the contribution
	    are public and that a record of the contribution (including all
	    personal information I submit with it, including my sign-off) is
	    maintained indefinitely and may be redistributed consistent with
	    this project or the open source license(s) involved.

then you just add a line saying
then you just add a line saying


	Signed-off-by: Random J Developer <random@developer.org>
	Signed-off-by: Random J Developer <random@developer.org>
+1 −1
Original line number Original line Diff line number Diff line
@@ -12,7 +12,7 @@ Don is no longer the prime maintainer of this version of the driver.
Please report problems to one or more of:
Please report problems to one or more of:


  Andrew Morton <andrewm@uow.edu.au>
  Andrew Morton <andrewm@uow.edu.au>
  Netdev mailing list <netdev@oss.sgi.com>
  Netdev mailing list <netdev@vger.kernel.org>
  Linux kernel mailing list <linux-kernel@vger.kernel.org>
  Linux kernel mailing list <linux-kernel@vger.kernel.org>


Please note the 'Reporting and Diagnosing Problems' section at the end
Please note the 'Reporting and Diagnosing Problems' section at the end
+24 −24
Original line number Original line Diff line number Diff line
@@ -73,7 +73,7 @@ S: Status, one of the following:
3C359 NETWORK DRIVER
3C359 NETWORK DRIVER
P:	Mike Phillips
P:	Mike Phillips
M:	mikep@linuxtr.net
M:	mikep@linuxtr.net
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
L:	linux-tr@linuxtr.net
L:	linux-tr@linuxtr.net
W:	http://www.linuxtr.net
W:	http://www.linuxtr.net
S:	Maintained
S:	Maintained
@@ -81,13 +81,13 @@ S: Maintained
3C505 NETWORK DRIVER
3C505 NETWORK DRIVER
P:	Philip Blundell
P:	Philip Blundell
M:	philb@gnu.org
M:	philb@gnu.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


3CR990 NETWORK DRIVER
3CR990 NETWORK DRIVER
P:	David Dillow
P:	David Dillow
M:	dave@thedillows.org
M:	dave@thedillows.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


3W-XXXX ATA-RAID CONTROLLER DRIVER
3W-XXXX ATA-RAID CONTROLLER DRIVER
@@ -130,7 +130,7 @@ S: Maintained
8169 10/100/1000 GIGABIT ETHERNET DRIVER
8169 10/100/1000 GIGABIT ETHERNET DRIVER
P:	Francois Romieu
P:	Francois Romieu
M:	romieu@fr.zoreil.com
M:	romieu@fr.zoreil.com
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
@@ -143,7 +143,7 @@ S: Maintained
8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
8390 NETWORK DRIVERS [WD80x3/SMC-ELITE, SMC-ULTRA, NE2000, 3C503, etc.]
P:	Paul Gortmaker
P:	Paul Gortmaker
M:	p_gortmaker@yahoo.com
M:	p_gortmaker@yahoo.com
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


A2232 SERIAL BOARD DRIVER
A2232 SERIAL BOARD DRIVER
@@ -332,7 +332,7 @@ S: Maintained


ARPD SUPPORT
ARPD SUPPORT
P:	Jonathan Layes
P:	Jonathan Layes
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


ASUS ACPI EXTRAS DRIVER
ASUS ACPI EXTRAS DRIVER
@@ -706,7 +706,7 @@ S: Orphaned


DIGI RIGHTSWITCH NETWORK DRIVER
DIGI RIGHTSWITCH NETWORK DRIVER
P:	Rick Richardson
P:	Rick Richardson
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
W:	http://www.digi.com
W:	http://www.digi.com
S:	Orphaned
S:	Orphaned


@@ -812,7 +812,7 @@ S: Maintained
ETHEREXPRESS-16 NETWORK DRIVER
ETHEREXPRESS-16 NETWORK DRIVER
P:	Philip Blundell
P:	Philip Blundell
M:	philb@gnu.org
M:	philb@gnu.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


ETHERNET BRIDGE
ETHERNET BRIDGE
@@ -875,7 +875,7 @@ S: Maintained
FRAME RELAY DLCI/FRAD (Sangoma drivers too)
FRAME RELAY DLCI/FRAD (Sangoma drivers too)
P:	Mike McLagan
P:	Mike McLagan
M:	mike.mclagan@linux.org
M:	mike.mclagan@linux.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


FREEVXFS FILESYSTEM
FREEVXFS FILESYSTEM
@@ -1215,7 +1215,7 @@ S: Maintained
IPX NETWORK LAYER
IPX NETWORK LAYER
P:	Arnaldo Carvalho de Melo
P:	Arnaldo Carvalho de Melo
M:	acme@conectiva.com.br
M:	acme@conectiva.com.br
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


IRDA SUBSYSTEM
IRDA SUBSYSTEM
@@ -1482,7 +1482,7 @@ MARVELL MV64340 ETHERNET DRIVER
P:	Manish Lachwani
P:	Manish Lachwani
M:	Manish_Lachwani@pmc-sierra.com
M:	Manish_Lachwani@pmc-sierra.com
L:	linux-mips@linux-mips.org
L:	linux-mips@linux-mips.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Supported
S:	Supported


MATROX FRAMEBUFFER DRIVER
MATROX FRAMEBUFFER DRIVER
@@ -1592,13 +1592,13 @@ P: Andrew Morton
M:	akpm@osdl.org
M:	akpm@osdl.org
P:	Jeff Garzik
P:	Jeff Garzik
M:	jgarzik@pobox.com
M:	jgarzik@pobox.com
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


NETWORKING [GENERAL]
NETWORKING [GENERAL]
P:	Networking Team
P:	Networking Team
M:	netdev@oss.sgi.com
M:	netdev@vger.kernel.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


NETWORKING [IPv4/IPv6]
NETWORKING [IPv4/IPv6]
@@ -1614,7 +1614,7 @@ P: Hideaki YOSHIFUJI
M:	yoshfuji@linux-ipv6.org
M:	yoshfuji@linux-ipv6.org
P:	Patrick McHardy
P:	Patrick McHardy
M:	kaber@coreworks.de
M:	kaber@coreworks.de
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


IPVS
IPVS
@@ -1634,7 +1634,7 @@ NI5010 NETWORK DRIVER
P:	Jan-Pascal van Best and Andreas Mohr
P:	Jan-Pascal van Best and Andreas Mohr
M:	Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl>
M:	Jan-Pascal van Best <jvbest@qv3pluto.leidenuniv.nl>
M:	Andreas Mohr <100.30936@germany.net>
M:	Andreas Mohr <100.30936@germany.net>
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


NINJA SCSI-3 / NINJA SCSI-32Bi (16bit/CardBus) PCMCIA SCSI HOST ADAPTER DRIVER
NINJA SCSI-3 / NINJA SCSI-32Bi (16bit/CardBus) PCMCIA SCSI HOST ADAPTER DRIVER
@@ -1676,7 +1676,7 @@ P: Peter De Shrijver
M:	p2@ace.ulyssis.student.kuleuven.ac.be
M:	p2@ace.ulyssis.student.kuleuven.ac.be
P:	Mike Phillips
P:	Mike Phillips
M:	mikep@linuxtr.net 
M:	mikep@linuxtr.net 
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
L:	linux-tr@linuxtr.net
L:	linux-tr@linuxtr.net
W:	http://www.linuxtr.net
W:	http://www.linuxtr.net
S:	Maintained
S:	Maintained
@@ -1783,7 +1783,7 @@ S: Unmaintained
PCNET32 NETWORK DRIVER
PCNET32 NETWORK DRIVER
P:	Thomas Bogendrfer
P:	Thomas Bogendrfer
M:	tsbogend@alpha.franken.de
M:	tsbogend@alpha.franken.de
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


PHRAM MTD DRIVER
PHRAM MTD DRIVER
@@ -1795,7 +1795,7 @@ S: Maintained
POSIX CLOCKS and TIMERS
POSIX CLOCKS and TIMERS
P:	George Anzinger
P:	George Anzinger
M:	george@mvista.com
M:	george@mvista.com
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Supported
S:	Supported


PNP SUPPORT
PNP SUPPORT
@@ -1830,7 +1830,7 @@ S: Supported
PRISM54 WIRELESS DRIVER
PRISM54 WIRELESS DRIVER
P:	Prism54 Development Team
P:	Prism54 Development Team
M:	prism54-private@prism54.org
M:	prism54-private@prism54.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
W:	http://prism54.org
W:	http://prism54.org
S:	Maintained
S:	Maintained


@@ -2047,7 +2047,7 @@ SIS 900/7016 FAST ETHERNET DRIVER
P:	Daniele Venzano
P:	Daniele Venzano
M:	venza@brownhat.org
M:	venza@brownhat.org
W:	http://www.brownhat.org/sis900.html
W:	http://www.brownhat.org/sis900.html
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


SIS FRAMEBUFFER DRIVER
SIS FRAMEBUFFER DRIVER
@@ -2106,7 +2106,7 @@ S: Maintained
SONIC NETWORK DRIVER
SONIC NETWORK DRIVER
P:	Thomas Bogendoerfer
P:	Thomas Bogendoerfer
M:	tsbogend@alpha.franken.de
M:	tsbogend@alpha.franken.de
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


SONY VAIO CONTROL DEVICE DRIVER
SONY VAIO CONTROL DEVICE DRIVER
@@ -2163,7 +2163,7 @@ S: Supported
SPX NETWORK LAYER
SPX NETWORK LAYER
P:	Jay Schulist
P:	Jay Schulist
M:	jschlst@samba.org
M:	jschlst@samba.org
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
S:	Supported
S:	Supported


SRM (Alpha) environment access
SRM (Alpha) environment access
@@ -2242,7 +2242,7 @@ S: Maintained
TOKEN-RING NETWORK DRIVER
TOKEN-RING NETWORK DRIVER
P:	Mike Phillips
P:	Mike Phillips
M:	mikep@linuxtr.net
M:	mikep@linuxtr.net
L:	netdev@oss.sgi.com
L:	netdev@vger.kernel.org
L:	linux-tr@linuxtr.net
L:	linux-tr@linuxtr.net
W:	http://www.linuxtr.net
W:	http://www.linuxtr.net
S:	Maintained
S:	Maintained
Loading