On Sat, 9 Feb 2008 22:33:07 +0100 Ondrej Zary <[EMAIL PROTECTED]> wrote:
> Hello, > this patch converts 3c509 driver to isa_driver and pnp_driver. The result is > that autoloading using udev and hibernation works with ISA PnP cards. It also > adds hibernation support for non-PnP ISA cards. > > xcvr module parameter was removed as its value was not used. > > Tested using 3 ISA cards in various combinations of PnP and non-PnP modes. > EISA and MCA only compile-tested. > > Signed-off-by: Ondrej Zary <[EMAIL PROTECTED]> > > --- linux-2.6.24-orig/drivers/net/3c509.c 2008-01-27 19:48:19.000000000 > +0100 > +++ linux-2.6.24-pentium/drivers/net/3c509.c 2008-02-07 17:58:45.000000000 > +0100 > @@ -54,25 +54,24 @@ > v1.19a 28Oct2002 Davud Ruggiero <[EMAIL PROTECTED]> > - Increase *read_eeprom udelay to workaround oops with > 2 cards. > v1.19b 08Nov2002 Marc Zyngier <[EMAIL PROTECTED]> > - - Introduce driver model for EISA cards. > + - Introduce driver model for EISA cards. > + v1.20 04Feb2008 Ondrej Zary <[EMAIL PROTECTED]> > + - convert to isa_driver and pnp_driver and some cleanups > */ Don't bother with comment, kernel uses git change log to figure out who to blame. > #define DRV_NAME "3c509" > -#define DRV_VERSION "1.19b" > -#define DRV_RELDATE "08Nov2002" > +#define DRV_VERSION "1.20" > +#define DRV_RELDATE "04Feb2008" > > /* A few values that may be tweaked. */ > > /* Time in jiffies before concluding the transmitter is hung. */ > #define TX_TIMEOUT (400*HZ/1000) > -/* Maximum events (Rx packets, etc.) to handle at each interrupt. */ > -static int max_interrupt_work = 10; > > #include <linux/module.h> > -#ifdef CONFIG_MCA > #include <linux/mca.h> > -#endif > -#include <linux/isapnp.h> > +#include <linux/isa.h> > +#include <linux/pnp.h> > #include <linux/string.h> > #include <linux/interrupt.h> > #include <linux/errno.h> > @@ -97,10 +96,6 @@ > > static char version[] __initdata = DRV_NAME ".c:" DRV_VERSION " " > DRV_RELDATE " [EMAIL PROTECTED]"; > > -#if defined(CONFIG_PM) && (defined(CONFIG_MCA) || defined(CONFIG_EISA)) > -#define EL3_SUSPEND > -#endif > - > #ifdef EL3_DEBUG > static int el3_debug = EL3_DEBUG; > #else > @@ -111,6 +106,7 @@ > * a global variable so that the mca/eisa probe routines can increment > * it */ > static int el3_cards = 0; > +#define EL3_MAX_CARDS 8 > > /* To minimize the size of the driver source I only define operating > constants if they are used several times. You'll need the manual > @@ -119,7 +115,7 @@ > #define EL3_DATA 0x00 > #define EL3_CMD 0x0e > #define EL3_STATUS 0x0e > -#define EEPROM_READ 0x80 > +#define EEPROM_READ 0x80 > > #define EL3_IO_EXTENT 16 > > @@ -168,23 +164,31 @@ > */ > #define SKB_QUEUE_SIZE 64 > > +typedef enum { EL3_ISA, EL3_PNP, EL3_MCA, EL3_EISA } el3_cardtype; > + No typedef please (see checkpatch) > struct el3_private { > struct net_device_stats stats; Use network device stats in net_device now > - struct net_device *next_dev; > spinlock_t lock; > /* skb send-queue */ > int head, size; > struct sk_buff *queue[SKB_QUEUE_SIZE]; What about sk_buff_head (linked list instead)? > - enum { > - EL3_MCA, > - EL3_PNP, > - EL3_EISA, > - } type; /* type of device */ > - struct device *dev; > + el3_cardtype type; > }; > -static int id_port __initdata = 0x110; /* Start with 0x110 to avoid > new sound cards.*/ > -static struct net_device *el3_root_dev; > +static int id_port; > +static int current_tag; > +static struct net_device *el3_devs[EL3_MAX_CARDS]; I know is only ISA, but having a limit seems silly, can't the device just use allocated space like other drivers. > + > +/* Parameters that may be passed into the module. */ > +static int debug = -1; > +static int irq[] = {-1, -1, -1, -1, -1, -1, -1, -1}; > +/* Maximum events (Rx packets, etc.) to handle at each interrupt. */ > +static int max_interrupt_work = 10; > +#ifdef CONFIG_PNP > +static int nopnp; > +#endif > -- Stephen Hemminger <[EMAIL PROTECTED]> -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html