@@ -143,6 +143,18 @@ config APNE
To compile this driver as a module, choose M here: the module
will be called apne.
+config APNE100MBIT
+ bool "PCMCIA NE2000 100MBit support"
+ depends on APNE
+ 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 or from the kernel
+ command line, use the apne.100mbit module parameter.
+
config PCMCIA_PCNET
tristate "NE2000 compatible PCMCIA support"
depends on PCMCIA
@@ -120,6 +120,12 @@ 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)");
+#ifdef CONFIG_APNE100MBIT
+static bool apne_100_mbit;
+module_param_named(100_mbit, apne_100_mbit, bool, 0444);
+MODULE_PARM_DESC(100_mbit, "Enable 100 Mbit support");
+#endif
+
struct net_device * __init apne_probe(int unit)
{
struct net_device *dev;
@@ -139,6 +145,13 @@ struct net_device * __init apne_probe(int unit)
if ( !(AMIGAHW_PRESENT(PCMCIA)) )
return ERR_PTR(-ENODEV);
+#ifdef CONFIG_APNE100MBIT
+ if (apne_100_mbit)
+ isa_type = ISA_TYPE_AG16;
+ else
+ isa_type = ISA_TYPE_AG;
+#endif
+
pr_info("Looking for PCMCIA ethernet card : ");
/* check if a card is inserted */
@@ -590,6 +603,18 @@ 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);