Commit ebd627f5 authored by Linus Torvalds's avatar Linus Torvalds

Merge http://gkernel.bkbits.net/net-drivers-2.5

into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
parents ac87508c 4fd9fa2e
...@@ -3,6 +3,10 @@ CONFIG_BAGETLANCE ...@@ -3,6 +3,10 @@ CONFIG_BAGETLANCE
MIPS-32-based Baget embedded system. This chipset is better known MIPS-32-based Baget embedded system. This chipset is better known
via the NE2100 cards. via the NE2100 cards.
CONFIG_LASI_82596
Say Y here to support the on-board Intel 82596 ethernet controller
built into Hewlett-Packard PA-RISC machines.
CONFIG_MIPS_JAZZ_SONIC CONFIG_MIPS_JAZZ_SONIC
This is the driver for the onboard card of MIPS Magnum 4000, This is the driver for the onboard card of MIPS Magnum 4000,
Acer PICA, Olivetti M700-10 and a few other identical OEM systems. Acer PICA, Olivetti M700-10 and a few other identical OEM systems.
...@@ -214,6 +218,12 @@ CONFIG_PPPOE ...@@ -214,6 +218,12 @@ CONFIG_PPPOE
pppd, along with binaries of a patched pppd package can be found at: pppd, along with binaries of a patched pppd package can be found at:
<http://www.shoshin.uwaterloo.ca/~mostrows/>. <http://www.shoshin.uwaterloo.ca/~mostrows/>.
CONFIG_PPPOATM
Support PPP (Point to Point Protocol) encapsulated in ATM frames.
This implementation does not yet comply with section 8 of RFC2364,
which can lead to bad results if the ATM peer loses state and
changes its encapsulation unilaterally.
CONFIG_NET_RADIO CONFIG_NET_RADIO
Support for wireless LANs and everything having to do with radio, Support for wireless LANs and everything having to do with radio,
but not with amateur radio or FM broadcasting. but not with amateur radio or FM broadcasting.
...@@ -853,6 +863,10 @@ CONFIG_LANCE ...@@ -853,6 +863,10 @@ CONFIG_LANCE
say M here and read <file:Documentation/modules.txt>. This is say M here and read <file:Documentation/modules.txt>. This is
recommended. The module will be called lance.o. recommended. The module will be called lance.o.
CONFIG_MIPS_AU1000_ENET
If you have an Alchemy Semi AU1000 ethernet controller
on an SGI MIPS system, say Y. Otherwise, say N.
CONFIG_SGI_IOC3_ETH CONFIG_SGI_IOC3_ETH
If you have a network (Ethernet) card of this type, say Y and read If you have a network (Ethernet) card of this type, say Y and read
the Ethernet-HOWTO, available from the Ethernet-HOWTO, available from
...@@ -1326,6 +1340,24 @@ CONFIG_DE4X5 ...@@ -1326,6 +1340,24 @@ CONFIG_DE4X5
module, say M here and read <file:Documentation/modules.txt> as well module, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/networking/net-modules.txt>. as <file:Documentation/networking/net-modules.txt>.
CONFIG_DE2104X
This driver is developed for the SMC EtherPower series Ethernet
cards and also works with cards based on the DECchip
21040 (Tulip series) chips. Some LinkSys PCI cards are
of this type. (If your card is NOT SMC EtherPower 10/100 PCI
(smc9332dst), you can also try the driver for "Generic DECchip"
cards, above. However, most people with a network card of this type
will say Y here.) Do read the Ethernet-HOWTO, available from
<http://www.linuxdoc.org/docs.html#howto>. More specific
information is contained in
<file:Documentation/DocBook/tulip-user.tmpl>.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module will be called tulip.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/networking/net-modules.txt>.
CONFIG_TULIP CONFIG_TULIP
This driver is developed for the SMC EtherPower series Ethernet This driver is developed for the SMC EtherPower series Ethernet
cards and also works with cards based on the DECchip cards and also works with cards based on the DECchip
...@@ -1344,6 +1376,20 @@ CONFIG_TULIP ...@@ -1344,6 +1376,20 @@ CONFIG_TULIP
module, say M here and read <file:Documentation/modules.txt> as well module, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/networking/net-modules.txt>. as <file:Documentation/networking/net-modules.txt>.
CONFIG_TULIP_MWI
This configures your Tulip card specifically for the card and
system cache line size type you are using.
This is experimental code, not yet tested on many boards.
If unsure, say N.
CONFIG_TULIP_MMIO
Use PCI shared memory for the NIC registers, rather than going through
the Tulip's PIO (programmed I/O ports). Faster, but could produce
obscure bugs if your mainboard has memory controller timing issues.
If in doubt, say N.
CONFIG_DGRS CONFIG_DGRS
This is support for the Digi International RightSwitch series of This is support for the Digi International RightSwitch series of
PCI/EISA Ethernet switch cards. These include the SE-4 and the SE-6 PCI/EISA Ethernet switch cards. These include the SE-4 and the SE-6
...@@ -1374,6 +1420,11 @@ CONFIG_FEALNX ...@@ -1374,6 +1420,11 @@ CONFIG_FEALNX
cards. Specifications and data at cards. Specifications and data at
<http://www.myson.com.hk/mtd/datasheet/>. <http://www.myson.com.hk/mtd/datasheet/>.
CONFIG_LP486E
Say Y here to support the 82596-based on-board Ethernet controller
for the Panther motherboard, which is one of the two shipped in the
Intel Professional Workstation.
CONFIG_ETH16I CONFIG_ETH16I
If you have a network (Ethernet) card of this type, say Y and read If you have a network (Ethernet) card of this type, say Y and read
the Ethernet-HOWTO, available from the Ethernet-HOWTO, available from
...@@ -1413,6 +1464,16 @@ CONFIG_VIA_RHINE ...@@ -1413,6 +1464,16 @@ CONFIG_VIA_RHINE
a module, say M here and read <file:Documentation/modules.txt> as a module, say M here and read <file:Documentation/modules.txt> as
well as <file:Documentation/networking/net-modules.txt>. well as <file:Documentation/networking/net-modules.txt>.
CONFIG_VIA_RHINE_MMIO
This instructs the driver to use PCI shared memory (MMIO) instead of
programmed I/O ports (PIO). Enabling this gives an improvement in
processing time in parts of the driver.
It is not known if this works reliably on all "rhine" based cards,
but it has been tested successfully on some DFE-530TX adapters.
If unsure, say N.
CONFIG_DM9102 CONFIG_DM9102
This driver is for DM9102(A)/DM9132/DM9801 compatible PCI cards from This driver is for DM9102(A)/DM9132/DM9801 compatible PCI cards from
Davicom (<http://www.davicom.com.tw/>). If you have such a network Davicom (<http://www.davicom.com.tw/>). If you have such a network
......
...@@ -1925,6 +1925,8 @@ static int netdev_ethtool_ioctl(struct net_device *dev, void *useraddr) ...@@ -1925,6 +1925,8 @@ static int netdev_ethtool_ioctl(struct net_device *dev, void *useraddr)
/* get link status */ /* get link status */
case ETHTOOL_GLINK: { case ETHTOOL_GLINK: {
struct ethtool_value edata = {ETHTOOL_GLINK}; struct ethtool_value edata = {ETHTOOL_GLINK};
/* LSTATUS is latched low until a read - so read twice */
mdio_read(dev, 1, MII_BMSR);
edata.data = (mdio_read(dev, 1, MII_BMSR)&BMSR_LSTATUS) ? 1:0; edata.data = (mdio_read(dev, 1, MII_BMSR)&BMSR_LSTATUS) ? 1:0;
if (copy_to_user(useraddr, &edata, sizeof(edata))) if (copy_to_user(useraddr, &edata, sizeof(edata)))
return -EFAULT; return -EFAULT;
......
...@@ -133,7 +133,7 @@ CONFIG_PCMCIA_XIRCOM ...@@ -133,7 +133,7 @@ CONFIG_PCMCIA_XIRCOM
This driver is also available as a module ( = code which can be This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want). inserted in and removed from the running kernel whenever you want).
The module will be called xircom_tulip_cb.o. If you want to compile The module will be called xircom_cb.o. If you want to compile
it as a module, say M here and read it as a module, say M here and read
<file:Documentation/modules.txt>. If unsure, say N. <file:Documentation/modules.txt>. If unsure, say N.
......
...@@ -433,8 +433,6 @@ static int olympic_open(struct net_device *dev) ...@@ -433,8 +433,6 @@ static int olympic_open(struct net_device *dev)
do { do {
int i; int i;
save_flags(flags);
cli();
for(i=0;i<SRB_COMMAND_SIZE;i+=4) for(i=0;i<SRB_COMMAND_SIZE;i+=4)
writel(0,init_srb+i); writel(0,init_srb+i);
if(SRB_COMMAND_SIZE & 2) if(SRB_COMMAND_SIZE & 2)
...@@ -465,10 +463,12 @@ static int olympic_open(struct net_device *dev) ...@@ -465,10 +463,12 @@ static int olympic_open(struct net_device *dev)
memcpy(dev->dev_addr,olympic_priv->olympic_laa,dev->addr_len) ; memcpy(dev->dev_addr,olympic_priv->olympic_laa,dev->addr_len) ;
} }
writeb(1,init_srb+30); writeb(1,init_srb+30);
spin_lock_irqsave(&olympic_priv->olympic_lock,flags);
olympic_priv->srb_queued=1; olympic_priv->srb_queued=1;
writel(LISR_SRB_CMD,olympic_mmio+LISR_SUM); writel(LISR_SRB_CMD,olympic_mmio+LISR_SUM);
spin_unlock_irqrestore(&olympic_priv->olympic_lock,flags);
t = jiffies ; t = jiffies ;
...@@ -496,7 +496,6 @@ static int olympic_open(struct net_device *dev) ...@@ -496,7 +496,6 @@ static int olympic_open(struct net_device *dev)
remove_wait_queue(&olympic_priv->srb_wait,&wait) ; remove_wait_queue(&olympic_priv->srb_wait,&wait) ;
set_current_state(TASK_RUNNING) ; set_current_state(TASK_RUNNING) ;
restore_flags(flags);
#if OLYMPIC_DEBUG #if OLYMPIC_DEBUG
printk("init_srb(%p): ",init_srb); printk("init_srb(%p): ",init_srb);
for(i=0;i<20;i++) for(i=0;i<20;i++)
...@@ -1058,12 +1057,11 @@ static int olympic_close(struct net_device *dev) ...@@ -1058,12 +1057,11 @@ static int olympic_close(struct net_device *dev)
writeb(0,srb+1); writeb(0,srb+1);
writeb(OLYMPIC_CLEAR_RET_CODE,srb+2); writeb(OLYMPIC_CLEAR_RET_CODE,srb+2);
save_flags(flags); spin_lock_irqsave(&olympic_priv->olympic_lock,flags);
cli();
olympic_priv->srb_queued=1; olympic_priv->srb_queued=1;
writel(LISR_SRB_CMD,olympic_mmio+LISR_SUM); writel(LISR_SRB_CMD,olympic_mmio+LISR_SUM);
spin_unlock_irqrestore(&olympic_priv->olympic_lock,flags);
t = jiffies ; t = jiffies ;
...@@ -1088,7 +1086,6 @@ static int olympic_close(struct net_device *dev) ...@@ -1088,7 +1086,6 @@ static int olympic_close(struct net_device *dev)
remove_wait_queue(&olympic_priv->srb_wait,&wait) ; remove_wait_queue(&olympic_priv->srb_wait,&wait) ;
set_current_state(TASK_RUNNING) ; set_current_state(TASK_RUNNING) ;
restore_flags(flags) ;
olympic_priv->rx_status_last_received++; olympic_priv->rx_status_last_received++;
olympic_priv->rx_status_last_received&=OLYMPIC_RX_RING_SIZE-1; olympic_priv->rx_status_last_received&=OLYMPIC_RX_RING_SIZE-1;
......
This diff is collapsed.
This diff is collapsed.
...@@ -345,6 +345,12 @@ ...@@ -345,6 +345,12 @@
* - Fix spinlock stupid bugs that I left in. The driver is now SMP * - Fix spinlock stupid bugs that I left in. The driver is now SMP
* compliant and doesn't lockup at startup. * compliant and doesn't lockup at startup.
* *
* Changes made for release in 2.5.2 :
* ---------------------------------
* - Use new driver API for Wireless Extensions :
* o got rid of wavelan_ioctl()
* o use a bunch of iw_handler instead
*
* Wishes & dreams: * Wishes & dreams:
* ---------------- * ----------------
* - roaming (see Pcmcia driver) * - roaming (see Pcmcia driver)
...@@ -379,6 +385,7 @@ ...@@ -379,6 +385,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/wireless.h> /* Wireless extensions */ #include <linux/wireless.h> /* Wireless extensions */
#include <net/iw_handler.h> /* Wireless handlers */
/* WaveLAN declarations */ /* WaveLAN declarations */
#include "i82586.h" #include "i82586.h"
...@@ -436,7 +443,7 @@ ...@@ -436,7 +443,7 @@
/************************ CONSTANTS & MACROS ************************/ /************************ CONSTANTS & MACROS ************************/
#ifdef DEBUG_VERSION_SHOW #ifdef DEBUG_VERSION_SHOW
static const char *version = "wavelan.c : v23 (SMP + wireless extensions) 05/10/00\n"; static const char *version = "wavelan.c : v24 (SMP + wireless extensions) 11/12/01\n";
#endif #endif
/* Watchdog temporisation */ /* Watchdog temporisation */
...@@ -449,11 +456,9 @@ static const char *version = "wavelan.c : v23 (SMP + wireless extensions) 05/10/ ...@@ -449,11 +456,9 @@ static const char *version = "wavelan.c : v23 (SMP + wireless extensions) 05/10/
#define SIOCSIPQTHR SIOCIWFIRSTPRIV /* Set quality threshold */ #define SIOCSIPQTHR SIOCIWFIRSTPRIV /* Set quality threshold */
#define SIOCGIPQTHR SIOCIWFIRSTPRIV + 1 /* Get quality threshold */ #define SIOCGIPQTHR SIOCIWFIRSTPRIV + 1 /* Get quality threshold */
#define SIOCSIPLTHR SIOCIWFIRSTPRIV + 2 /* Set level threshold */
#define SIOCGIPLTHR SIOCIWFIRSTPRIV + 3 /* Get level threshold */
#define SIOCSIPHISTO SIOCIWFIRSTPRIV + 6 /* Set histogram ranges */ #define SIOCSIPHISTO SIOCIWFIRSTPRIV + 2 /* Set histogram ranges */
#define SIOCGIPHISTO SIOCIWFIRSTPRIV + 7 /* Get histogram values */ #define SIOCGIPHISTO SIOCIWFIRSTPRIV + 3 /* Get histogram values */
/****************************** TYPES ******************************/ /****************************** TYPES ******************************/
...@@ -516,12 +521,6 @@ struct net_local ...@@ -516,12 +521,6 @@ struct net_local
/**************************** PROTOTYPES ****************************/ /**************************** PROTOTYPES ****************************/
/* ----------------------- MISC. SUBROUTINES ------------------------ */ /* ----------------------- MISC. SUBROUTINES ------------------------ */
static inline void
wv_splhi(net_local *, /* Disable interrupts, lock driver */
unsigned long *); /* flags */
static inline void
wv_splx(net_local *, /* Enable interrupts, unlock driver */
unsigned long *); /* flags */
static u_char static u_char
wv_irq_to_psa(int); wv_irq_to_psa(int);
static int static int
......
This diff is collapsed.
...@@ -394,6 +394,12 @@ ...@@ -394,6 +394,12 @@
* o control first busy loop in wv_82593_cmd() * o control first busy loop in wv_82593_cmd()
* o Extend spinlock protection in wv_hw_config() * o Extend spinlock protection in wv_hw_config()
* *
* Changes made for release in 3.1.33 :
* ----------------------------------
* - Optional use new driver API for Wireless Extensions :
* o got rid of wavelan_ioctl()
* o use a bunch of iw_handler instead
*
* Wishes & dreams: * Wishes & dreams:
* ---------------- * ----------------
* - Cleanup and integrate the roaming code * - Cleanup and integrate the roaming code
...@@ -430,6 +436,9 @@ ...@@ -430,6 +436,9 @@
#ifdef CONFIG_NET_RADIO #ifdef CONFIG_NET_RADIO
#include <linux/wireless.h> /* Wireless extensions */ #include <linux/wireless.h> /* Wireless extensions */
#if WIRELESS_EXT > 12
#include <net/iw_handler.h>
#endif /* WIRELESS_EXT > 12 */
#endif #endif
/* Pcmcia headers that we need */ /* Pcmcia headers that we need */
...@@ -498,7 +507,7 @@ ...@@ -498,7 +507,7 @@
/************************ CONSTANTS & MACROS ************************/ /************************ CONSTANTS & MACROS ************************/
#ifdef DEBUG_VERSION_SHOW #ifdef DEBUG_VERSION_SHOW
static const char *version = "wavelan_cs.c : v23 (SMP + wireless extensions) 20/12/00\n"; static const char *version = "wavelan_cs.c : v24 (SMP + wireless extensions) 11/1/02\n";
#endif #endif
/* Watchdog temporisation */ /* Watchdog temporisation */
...@@ -523,8 +532,8 @@ static const char *version = "wavelan_cs.c : v23 (SMP + wireless extensions) 20/ ...@@ -523,8 +532,8 @@ static const char *version = "wavelan_cs.c : v23 (SMP + wireless extensions) 20/
#define SIOCSIPROAM SIOCIWFIRSTPRIV + 2 /* Set roaming state */ #define SIOCSIPROAM SIOCIWFIRSTPRIV + 2 /* Set roaming state */
#define SIOCGIPROAM SIOCIWFIRSTPRIV + 3 /* Get roaming state */ #define SIOCGIPROAM SIOCIWFIRSTPRIV + 3 /* Get roaming state */
#define SIOCSIPHISTO SIOCIWFIRSTPRIV + 6 /* Set histogram ranges */ #define SIOCSIPHISTO SIOCIWFIRSTPRIV + 4 /* Set histogram ranges */
#define SIOCGIPHISTO SIOCIWFIRSTPRIV + 7 /* Get histogram values */ #define SIOCGIPHISTO SIOCIWFIRSTPRIV + 5 /* Get histogram values */
/*************************** WaveLAN Roaming **************************/ /*************************** WaveLAN Roaming **************************/
#ifdef WAVELAN_ROAMING /* Conditional compile, see above in options */ #ifdef WAVELAN_ROAMING /* Conditional compile, see above in options */
...@@ -589,6 +598,16 @@ typedef struct iw_freq iw_freq; ...@@ -589,6 +598,16 @@ typedef struct iw_freq iw_freq;
typedef struct net_local net_local; typedef struct net_local net_local;
typedef struct timer_list timer_list; typedef struct timer_list timer_list;
#if WIRELESS_EXT <= 12
/* Wireless extensions backward compatibility */
/* Part of iw_handler prototype we need */
struct iw_request_info
{
__u16 cmd; /* Wireless Extension command */
__u16 flags; /* More to come ;-) */
};
#endif /* WIRELESS_EXT <= 12 */
/* Basic types */ /* Basic types */
typedef u_char mac_addr[WAVELAN_ADDR_SIZE]; /* Hardware address */ typedef u_char mac_addr[WAVELAN_ADDR_SIZE]; /* Hardware address */
...@@ -661,12 +680,6 @@ void wv_roam_cleanup(struct net_device *dev); ...@@ -661,12 +680,6 @@ void wv_roam_cleanup(struct net_device *dev);
#endif /* WAVELAN_ROAMING */ #endif /* WAVELAN_ROAMING */
/* ----------------------- MISC SUBROUTINES ------------------------ */ /* ----------------------- MISC SUBROUTINES ------------------------ */
static inline void
wv_splhi(net_local *, /* Disable interrupts */
unsigned long *); /* flags */
static inline void
wv_splx(net_local *, /* ReEnable interrupts */
unsigned long *); /* flags */
static void static void
cs_error(client_handle_t, /* Report error to cardmgr */ cs_error(client_handle_t, /* Report error to cardmgr */
int, int,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment