PCNet32 driver patch (for 2.4.2 kernel)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I needed to setup an integrated net card on some old Compaq Prosignia VS
machine. It is a 486 EISA machine, with AMD PCNet32 driver on Processor
board. It wasn;t possible use the original driver, as it only checks PCI
(even VLB ports checking is turned off in sources). I needed to pass
IO=0x8800 and IRQ=10 to the driver so I have fixed it so it accepts "io"
and "irq" parameters.

The patch is attached. I thing passing those parameters can be usefull
in some other cases too.

Greets,
        Jacek
diff -durN linux-2.4.2.orig/drivers/net/pcnet32.c linux-2.4.2/drivers/net/pcnet32.c
--- linux-2.4.2.orig/drivers/net/pcnet32.c	Tue Feb 13 22:15:05 2001
+++ linux-2.4.2/drivers/net/pcnet32.c	Wed Mar  7 11:11:36 2001
@@ -1483,6 +1483,8 @@
     id_table: pcnet32_pci_tbl,
 };
 
+MODULE_PARM(io, "i");
+MODULE_PARM(irq, "i");
 MODULE_PARM(debug, "i");
 MODULE_PARM(max_interrupt_work, "i");
 MODULE_PARM(rx_copybreak, "i");
@@ -1495,6 +1497,8 @@
 /* An additional parameter that may be passed in... */
 static int debug = -1;
 static int tx_start_pt = -1;
+static int io = 0;
+static int irq = 0;
 
 static int __init pcnet32_init_module(void)
 {
@@ -1505,6 +1509,13 @@
 	pcnet32_debug = debug;
     if ((tx_start_pt >= 0) && (tx_start_pt <= 3))
 	tx_start = tx_start_pt;
+    
+    if (io > 0x1ff) {
+	if (check_region(io, PCNET32_TOTAL_SIZE) == 0)
+	    return pcnet32_probe1(io, irq, 0, 0, NULL);
+	else
+	    return -ENODEV;
+    }
     
     pcnet32_dev = NULL;
     /* find the PCI devices */

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux