diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig index 9f4b302fd2ce35..10103fbef7d9ef 100644 --- a/drivers/net/ethernet/8390/Kconfig +++ b/drivers/net/ethernet/8390/Kconfig @@ -143,6 +143,19 @@ config APNE To compile this driver as a module, choose M here: the module will be called apne. +if APNE +config APNE100MBIT + bool "PCMCIA NE2000 100MBit support" + default n + ---help--- + This changes the driver to support 10/100Mbit cards (e.g. Netgear + FA411, CNet Singlepoint). 10 MBit cards and 100 MBit cards are + supported by the same driver. + + To activate 100 Mbit support at runtime, use the apne100 module + parameter. +endif + config PCMCIA_PCNET tristate "NE2000 compatible PCMCIA support" depends on PCMCIA diff --git a/drivers/net/ethernet/8390/apne.c b/drivers/net/ethernet/8390/apne.c index fe6c834c422e99..9648e458ff2911 100644 --- a/drivers/net/ethernet/8390/apne.c +++ b/drivers/net/ethernet/8390/apne.c @@ -120,6 +120,10 @@ static u32 apne_msg_enable; module_param_named(msg_enable, apne_msg_enable, uint, 0444); MODULE_PARM_DESC(msg_enable, "Debug message level (see linux/netdevice.h for bitmap)"); +static u32 apne_100_mbit; +module_param_named(apne_100_mbit, uint, 0); +MODULE_PARM_DESC(apne_100_mbit, "Enable 100 Mbit support"); + struct net_device * __init apne_probe(int unit) { struct net_device *dev; @@ -139,6 +143,9 @@ struct net_device * __init apne_probe(int unit) if ( !(AMIGAHW_PRESENT(PCMCIA)) ) return ERR_PTR(-ENODEV); + if (apne_100_mbit) + isa_type = ISA_TYPE_AG100; + pr_info("Looking for PCMCIA ethernet card : "); /* check if a card is inserted */ @@ -590,6 +597,16 @@ static int init_pcmcia(void) #endif u_long offset; +#ifdef CONFIG_APNE100MBIT + /* reset card (idea taken from CardReset by Artur Pogoda) */ + { + u_char tmp = gayle.intreq; + + gayle.intreq = 0xff; mdelay(1); + gayle.intreq = tmp; mdelay(300); + } +#endif + pcmcia_reset(); pcmcia_program_voltage(PCMCIA_0V); pcmcia_access_speed(PCMCIA_SPEED_250NS);