aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/fpga/altera-fpga2sdram.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/fpga/altera-fpga2sdram.c')
0 files changed, 0 insertions, 0 deletions
The LITMUS^RT kernel.Bjoern Brandenburg
aboutsummaryrefslogblamecommitdiffstats
path: root/drivers/net/wireless/wavelan.p.h
blob: 44d31bbf39e49d57409b5f41a3e487040974d1e6 (plain) (tree)



































































































                                                                             
                                                                 






















































































                                                                             
                                            




















































































































































































































                                                                               



                                                                            


                                                                       








































                                                                                                   















































                                                                              



                                                                  









































































































































                                                                                      
                                  





























































                                                                                       
/*
 *	WaveLAN ISA driver
 *
 *		Jean II - HPLB '96
 *
 * Reorganisation and extension of the driver.
 *
 * This file contains all definitions and declarations necessary for the
 * WaveLAN ISA driver.  This file is a private header, so it should
 * be included only in wavelan.c!
 */

#ifndef WAVELAN_P_H
#define WAVELAN_P_H

/************************** DOCUMENTATION ***************************/
/*
 * This driver provides a Linux interface to the WaveLAN ISA hardware.
 * The WaveLAN is a product of Lucent (http://www.wavelan.com/).
 * This division was formerly part of NCR and then AT&T.
 * WaveLANs are also distributed by DEC (RoamAbout DS) and Digital Ocean.
 *
 * To learn how to use this driver, read the NET3 HOWTO.
 * If you want to exploit the many other functionalities, read the comments
 * in the code.
 *
 * This driver is the result of the effort of many people (see below).
 */

/* ------------------------ SPECIFIC NOTES ------------------------ */
/*
 * Web page
 * --------
 *	I try to maintain a web page with the Wireless LAN Howto at :
 *	    http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Wavelan.html
 *
 * SMP
 * ---
 *	We now are SMP compliant (I eventually fixed the remaining bugs).
 *	The driver has been tested on a dual P6-150 and survived my usual
 *	set of torture tests.
 *	Anyway, I spent enough time chasing interrupt re-entrancy during
 *	errors or reconfigure, and I designed the locked/unlocked sections
 *	of the driver with great care, and with the recent addition of
 *	the spinlock (thanks to the new API), we should be quite close to
 *	the truth.
 *	The SMP/IRQ locking is quite coarse and conservative (i.e. not fast),
 *	but better safe than sorry (especially at 2 Mb/s ;-).
 *
 *	I have also looked into disabling only our interrupt on the card
 *	(via HACR) instead of all interrupts in the processor (via cli),
 *	so that other driver are not impacted, and it look like it's
 *	possible, but it's very tricky to do right (full of races). As
 *	the gain would be mostly for SMP systems, it can wait...
 *
 * Debugging and options
 * ---------------------
 *	You will find below a set of '#define" allowing a very fine control
 *	on the driver behaviour and the debug messages printed.
 *	The main options are :
 *	o SET_PSA_CRC, to have your card correctly recognised by
 *	  an access point and the Point-to-Point diagnostic tool.
 *	o USE_PSA_CONFIG, to read configuration from the PSA (EEprom)
 *	  (otherwise we always start afresh with some defaults)
 *
 * wavelan.o is too darned big
 * ---------------------------
 *	That's true!  There is a very simple way to reduce the driver
 *	object by 33%!  Comment out the following line:
 *		#include <linux/wireless.h>
 *	Other compile options can also reduce the size of it...
 *
 * MAC address and hardware detection:
 * -----------------------------------
 *	The detection code for the WaveLAN checks that the first three
 *	octets of the MAC address fit the company code.  This type of
 *	detection works well for AT&T cards (because the AT&T code is
 *	hardcoded in wavelan.h), but of course will fail for other
 *	manufacturers.
 *
 *	If you are sure that your card is derived from the WaveLAN,
 *	here is the way to configure it:
 *	1) Get your MAC address
 *		a) With your card utilities (wfreqsel, instconf, etc.)
 *		b) With the driver:
 *			o compile the kernel with DEBUG_CONFIG_INFO enabled
 *			o Boot and look the card messages
 *	2) Set your MAC code (3 octets) in MAC_ADDRESSES[][3] (wavelan.h)
 *	3) Compile and verify
 *	4) Send me the MAC code.  I will include it in the next version.
 *
 */

/* --------------------- WIRELESS EXTENSIONS --------------------- */
/*
 * This driver is the first to support "wireless extensions".
 * This set of extensions provides a standard way to control the wireless
 * characteristics of the hardware.  Applications such as mobile IP may
 * take advantage of it.
 *
 * It might be a good idea as well to fetch the wireless tools to
 * configure the device and play a bit.
 */

/* ---------------------------- FILES ---------------------------- */
/*
 * wavelan.c:		actual code for the driver:  C functions
 *
 * wavelan.p.h:		private header:  local types and variables for driver
 *
 * wavelan.h:		description of the hardware interface and structs
 *
 * i82586.h:		description of the Ethernet controller
 */

/* --------------------------- HISTORY --------------------------- */
/*
 * This is based on information in the drivers' headers. It may not be
 * accurate, and I guarantee only my best effort.
 *
 * The history of the WaveLAN drivers is as complicated as the history of
 * the WaveLAN itself (NCR -> AT&T -> Lucent).
 *
 * It all started with Anders Klemets <klemets@paul.rutgers.edu>
 * writing a WaveLAN ISA driver for the Mach microkernel.  Girish
 * Welling <welling@paul.rutgers.edu> had also worked on it.
 * Keith Moore modified this for the PCMCIA hardware.
 * 
 * Robert Morris <rtm@das.harvard.edu> ported these two drivers to BSDI
 * and added specific PCMCIA support (there is currently no equivalent
 * of the PCMCIA package under BSD).
 *
 * Jim Binkley <jrb@cs.pdx.edu> ported both BSDI drivers to FreeBSD.
 *
 * Bruce Janson <bruce@cs.usyd.edu.au> ported the BSDI ISA driver to Linux.
 *
 * Anthony D. Joseph <adj@lcs.mit.edu> started to modify Bruce's driver
 * (with help of the BSDI PCMCIA driver) for PCMCIA.
 * Yunzhou Li <yunzhou@strat.iol.unh.edu> finished this work.
 * Joe Finney <joe@comp.lancs.ac.uk> patched the driver to start
 * 2.00 cards correctly (2.4 GHz with frequency selection).
 * David Hinds <dahinds@users.sourceforge.net> integrated the whole in his
 * PCMCIA package (and bug corrections).
 *
 * I (Jean Tourrilhes - jt@hplb.hpl.hp.com) then started to make some
 * patches to the PCMCIA driver.  Later, I added code in the ISA driver
 * for Wireless Extensions and full support of frequency selection
 * cards.  Then, I did the same to the PCMCIA driver, and did some
 * reorganisation.  Finally, I came back to the ISA driver to
 * upgrade it at the same level as the PCMCIA one and reorganise
 * the code.
 * Loeke Brederveld <lbrederv@wavelan.com> from Lucent has given me
 * much needed information on the WaveLAN hardware.
 */

/* The original copyrights and literature mention others' names and
 * credits.  I don't know what their part in this development was.
 */

/* By the way, for the copyright and legal stuff:
 * almost everybody wrote code under the GNU or BSD license (or similar),
 * and want their original copyright to remain somewhere in the
 * code (for myself, I go with the GPL).
 * Nobody wants to take responsibility for anything, except the fame.
 */

/* --------------------------- CREDITS --------------------------- */
/*
 * This software was developed as a component of the
 * Linux operating system.
 * It is based on other device drivers and information
 * either written or supplied by:
 *	Ajay Bakre <bakre@paul.rutgers.edu>,
 *	Donald Becker <becker@cesdis.gsfc.nasa.gov>,
 *	Loeke Brederveld <Loeke.Brederveld@Utrecht.NCR.com>,
 *	Brent Elphick <belphick@uwaterloo.ca>,
 *	Anders Klemets <klemets@it.kth.se>,
 *	Vladimir V. Kolpakov <w@stier.koenig.ru>,
 *	Marc Meertens <Marc.Meertens@Utrecht.NCR.com>,
 *	Pauline Middelink <middelin@polyware.iaf.nl>,
 *	Robert Morris <rtm@das.harvard.edu>,
 *	Jean Tourrilhes <jt@hpl.hp.com>,
 *	Girish Welling <welling@paul.rutgers.edu>,
 *	Clark Woodworth <clark@hiway1.exit109.com>
 *	Yongguang Zhang <ygz@isl.hrl.hac.com>
 *
 * Thanks go also to:
 *	James Ashton <jaa101@syseng.anu.edu.au>,
 *	Alan Cox <alan@lxorguk.ukuu.org.uk>,
 *	Allan Creighton <allanc@cs.usyd.edu.au>,
 *	Matthew Geier <matthew@cs.usyd.edu.au>,
 *	Remo di Giovanni <remo@cs.usyd.edu.au>,
 *	Eckhard Grah <grah@wrcs1.urz.uni-wuppertal.de>,
 *	Vipul Gupta <vgupta@cs.binghamton.edu>,
 *	Mark Hagan <mhagan@wtcpost.daytonoh.NCR.COM>,
 *	Tim Nicholson <tim@cs.usyd.edu.au>,
 *	Ian Parkin <ian@cs.usyd.edu.au>,
 *	John Rosenberg <johnr@cs.usyd.edu.au>,
 *	George Rossi <george@phm.gov.au>,
 *	Arthur Scott <arthur@cs.usyd.edu.au>,
 *	Stanislav Sinyagin <stas@isf.ru>
 *	and Peter Storey for their assistance and advice.
 *
 * Additional Credits:
 *
 *	My development has been done initially under Debian 1.1 (Linux 2.0.x)
 *	and now	under Debian 2.2, initially with an HP Vectra XP/60, and now
 *	an HP Vectra XP/90.
 *
 */

/* ------------------------- IMPROVEMENTS ------------------------- */
/*
 * I proudly present:
 *
 * Changes made in first pre-release:
 * ----------------------------------
 *	- reorganisation of the code, function name change
 *	- creation of private header (wavelan.p.h)
 *	- reorganised debug messages
 *	- more comments, history, etc.
 *	- mmc_init:  configure the PSA if not done
 *	- mmc_init:  correct default value of level threshold for PCMCIA
 *	- mmc_init:  2.00 detection better code for 2.00 initialization
 *	- better info at startup
 *	- IRQ setting (note:  this setting is permanent)
 *	- watchdog:  change strategy (and solve module removal problems)
 *	- add wireless extensions (ioctl and get_wireless_stats)
 *	  get/set nwid/frequency on fly, info for /proc/net/wireless
 *	- more wireless extensions:  SETSPY and GETSPY
 *	- make wireless extensions optional
 *	- private ioctl to set/get quality and level threshold, histogram
 *	- remove /proc/net/wavelan
 *	- suppress useless stuff from lp (net_local)
 *	- kernel 2.1 support (copy_to/from_user instead of memcpy_to/fromfs)
 *	- add message level (debug stuff in /var/adm/debug and errors not
 *	  displayed at console and still in /var/adm/messages)
 *	- multi device support
 *	- start fixing the probe (init code)
 *	- more inlines
 *	- man page
 *	- many other minor details and cleanups
 *
 * Changes made in second pre-release:
 * -----------------------------------
 *	- clean up init code (probe and module init)
 *	- better multiple device support (module)
 *	- name assignment (module)
 *
 * Changes made in third pre-release:
 * ----------------------------------
 *	- be more conservative on timers
 *	- preliminary support for multicast (I still lack some details)