Skip to contentSkip to conversation

2.6.x net driver updates (updated)

PATCH New Jeff Garzik 1 participant 1 message Jan 12, 2005

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 2.6.x net driver updates (updated)

updated from when last sent, with akpm build/warning fixes.

Please do a

bk pull bk://gkernel.bkbits.net/net-drivers-2.6

This will update the following files:

 drivers/net/3c515.c                  |    2 
 drivers/net/arcnet/arcnet.c          |    3 
 drivers/net/e1000/e1000_ethtool.c    |    2 
 drivers/net/e1000/e1000_main.c       |    4 
 drivers/net/eepro.c                  |  144 +++++--
 drivers/net/ibm_emac/ibm_emac.h      |    2 
 drivers/net/ibm_emac/ibm_emac_core.c |   15 
 drivers/net/ibm_emac/ibm_emac_phy.c  |   19 
 drivers/net/ixgb/ixgb.h              |   25 +
 drivers/net/ixgb/ixgb_ee.c           |  192 +++++----
 drivers/net/ixgb/ixgb_ethtool.c      |  518 ++++++++++++++++---------
 drivers/net/ixgb/ixgb_hw.c           |  231 ++++++-----
 drivers/net/ixgb/ixgb_hw.h           |   50 +-
 drivers/net/ixgb/ixgb_ids.h          |   21 -
 drivers/net/ixgb/ixgb_main.c         |  705 +++++++++++++++++------------------
 drivers/net/ixgb/ixgb_osdep.h        |   10 
 drivers/net/ixgb/ixgb_param.c        |  316 +++++++--------
 drivers/net/s2io.c                   |   22 -
 drivers/net/s2io.h                   |    4 
 drivers/net/smc-ultra.c              |    2 
 drivers/net/smc91x.c                 |   16 
 drivers/net/wireless/orinoco.c       |  203 +++-------
 drivers/net/wireless/wl3501_cs.c     |    4 
 include/linux/arcdevice.h            |    1 
 24 files changed, 1418 insertions(+), 1093 deletions(-)

through these ChangeSets:

Andi Kleen:
o Fix gcc4 compilation in s2io net driver

Andrew Morton:
o 3c515 warning fix
o ixgb whitespace fix
o eepro build fix

Aristeu Sergio Rozanski Filho:
o eepro: fix auto-detection option
o eepro: fix return value in init_module()
o eepro: basic ethtool support
o eepro: use module_param macros
o eepro: cache EEPROM values

Christoph Hellwig:
o mark arcdev_setup static

David Gibson:
o Another trivial orinoco update

Ganesh Venkatesan:
o ixgb: White space corrections
o ixgb: Driver version number update
o ixgb: Support for 2.6.x style module parameters
o ixgb: Fix Tx cleanup logic
o ixgb: Shrink size and fix ordering of elements in ixgb_buffer
o ixgb: ethtool_ops support
o ixgb: Replace kmalloc with vmalloc (one time alloc)
o ixgb: Remove support for RAIDC interrupt mitigation
o ixgb: Limit Rx Address Filter Array entries to 3
o ixgb: Fix infinite loop trying to re-establish link
o ixgb: Fix error in setting MFS register
o ixgb: Poll Routine cleanup
o ixgb: Fix memory leak in NAPI mode
o ixgb: Fix VLAN filter setup errors (while running on PPC)
o ixgb: Add support for 10GbE LR device ID
o ixgb: Enable Message Signalled Interrupts
o ixgb: Limit number of Rx Descriptors to 512

Hirokazu Takata:
o net: netconsole support for smc91x

Jeff Garzik:
o e1000/ixgb net drivers: rename global symbol to fix 'make allyesconfig'

Matt Porter:
o Add netpoll support
o allow rx of the maximum sized VLAN tagged packets
o EMAC: fix ibm_emac autonegotiation result parsing

Paul Gortmaker:
o smc-ultra.c too-verbose driver

Raghavendra Koushik:
o S2io: fixes in free_shared_mem function

Randy Dunlap:
o wl3501: fix module_param types/warnings

drivers/net/3c515.c +1 -1
diff -Nru a/drivers/net/3c515.c b/drivers/net/3c515.c
@@ -34,7 +34,7 @@
 /* "Knobs" that adjust features and parameters. */
 /* Set the copy breakpoint for the copy-only-tiny-frames scheme.
    Setting to > 1512 effectively disables this feature. */
-static const int rx_copybreak = 200;
+static int rx_copybreak = 200;
 
 /* Allow setting MTU to a larger size, bypassing the normal ethernet setup. */
 static const int mtu = 1500;
drivers/net/arcnet/arcnet.c +1 -2
diff -Nru a/drivers/net/arcnet/arcnet.c b/drivers/net/arcnet/arcnet.c
@@ -93,7 +93,6 @@
 EXPORT_SYMBOL(arc_proto_null);
 EXPORT_SYMBOL(arcnet_unregister_proto);
 EXPORT_SYMBOL(arcnet_debug);
-EXPORT_SYMBOL(arcdev_setup);
 EXPORT_SYMBOL(alloc_arcdev);
 EXPORT_SYMBOL(arcnet_interrupt);
 
@@ -317,7 +316,7 @@
 
 
 /* Setup a struct device for ARCnet. */
-void arcdev_setup(struct net_device *dev)
+static void arcdev_setup(struct net_device *dev)
 {
 	dev->type = ARPHRD_ARCNET;
 	dev->hard_header_len = sizeof(struct archdr);
drivers/net/e1000/e1000_ethtool.c +1 -1
diff -Nru a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
@@ -1666,7 +1666,7 @@
 	.get_ethtool_stats      = e1000_get_ethtool_stats,
 };
 
-void set_ethtool_ops(struct net_device *netdev)
+void e1000_set_ethtool_ops(struct net_device *netdev)
 {
 	SET_ETHTOOL_OPS(netdev, &e1000_ethtool_ops);
 }
drivers/net/e1000/e1000_main.c +2 -2
diff -Nru a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
@@ -151,7 +151,7 @@
 static int e1000_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd);
 static int e1000_mii_ioctl(struct net_device *netdev, struct ifreq *ifr,
 			   int cmd);
-void set_ethtool_ops(struct net_device *netdev);
+void e1000_set_ethtool_ops(struct net_device *netdev);
 static void e1000_enter_82542_rst(struct e1000_adapter *adapter);
 static void e1000_leave_82542_rst(struct e1000_adapter *adapter);
 static void e1000_tx_timeout(struct net_device *dev);
@@ -475,7 +475,7 @@
 	netdev->set_mac_address = &e1000_set_mac;
 	netdev->change_mtu = &e1000_change_mtu;
 	netdev->do_ioctl = &e1000_ioctl;
-	set_ethtool_ops(netdev);
+	e1000_set_ethtool_ops(netdev);
 	netdev->tx_timeout = &e1000_tx_timeout;
 	netdev->watchdog_timeo = 5 * HZ;
 #ifdef CONFIG_E1000_NAPI
drivers/net/eepro.c +111 -33

309 lines not on this page · raw message

drivers/net/ibm_emac/ibm_emac.h +1 -1
diff -Nru a/drivers/net/ibm_emac/ibm_emac.h b/drivers/net/ibm_emac/ibm_emac.h
@@ -98,7 +98,7 @@
 #endif				/* CONFIG_IBM_EMAC4 */
 #define EMAC_M1_BASE			(EMAC_M1_TX_FIFO_2K | \
 					EMAC_M1_APP | \
-					EMAC_M1_TR)
+					EMAC_M1_TR | EMAC_M1_VLE)
 
 /* Transmit Mode Register 0 */
 #define EMAC_TMR0_GNP0			0x80000000
drivers/net/ibm_emac/ibm_emac_core.c +15 -0
diff -Nru a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -1363,6 +1363,9 @@
 
 	/* set frame gap */
 	out_be32(&emacp->em0ipgvr, CONFIG_IBM_EMAC_FGAP);
+	
+	/* set VLAN Tag Protocol Identifier */
+	out_be32(&emacp->em0vtpid, 0x8100);
 
 	/* Init ring buffers */
 	emac_init_rings(fep->ndev);
@@ -1700,6 +1703,15 @@
 	.rxde = &emac_rxde_dev,
 };
 
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static int emac_netpoll(struct net_device *ndev)
+{
+	emac_rxeob_dev((void *)ndev, 0);
+	emac_txeob_dev((void *)ndev, 0);
+	return 0;
+}
+#endif
+
 static int emac_init_device(struct ocp_device *ocpdev, struct ibm_ocp_mal *mal)
 {
 	int deferred_init = 0;
@@ -1882,6 +1894,9 @@
 	SET_ETHTOOL_OPS(ndev, &emac_ethtool_ops);
 	if (emacdata->tah_idx >= 0)
 		ndev->features = NETIF_F_IP_CSUM | NETIF_F_SG;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+	ndev->poll_controller = emac_netpoll;
+#endif
 
 	SET_MODULE_OWNER(ndev);
 
drivers/net/ibm_emac/ibm_emac_phy.c +10 -9
diff -Nru a/drivers/net/ibm_emac/ibm_emac_phy.c b/drivers/net/ibm_emac/ibm_emac_phy.c
@@ -191,17 +191,18 @@
 	u16 lpa;
 
 	if (phy->autoneg) {
-		lpa = phy_read(phy, MII_LPA);
+		lpa = phy_read(phy, MII_LPA) & phy_read(phy, MII_ADVERTISE);
 
-		if (lpa & (LPA_10FULL | LPA_100FULL))
-			phy->duplex = DUPLEX_FULL;
-		else
-			phy->duplex = DUPLEX_HALF;
-		if (lpa & (LPA_100FULL | LPA_100HALF))
-			phy->speed = SPEED_100;
-		else
-			phy->speed = SPEED_10;
+		phy->speed = SPEED_10;
+		phy->duplex = DUPLEX_HALF;
 		phy->pause = 0;
+
+		if (lpa & (LPA_100FULL | LPA_100HALF)) {
+			phy->speed = SPEED_100;
+			if (lpa & LPA_100FULL)
+				phy->duplex = DUPLEX_FULL;
+		} else if (lpa & LPA_10FULL)
+			phy->duplex = DUPLEX_FULL;
 	}
 	/* On non-aneg, we assume what we put in BMCR is the speed,
 	 * though magic-aneg shouldn't prevent this case from occurring
drivers/net/ixgb/ixgb.h +21 -4
diff -Nru a/drivers/net/ixgb/ixgb.h b/drivers/net/ixgb/ixgb.h
@@ -46,6 +46,7 @@
 #include <linux/delay.h>
 #include <linux/timer.h>
 #include <linux/slab.h>
+#include <linux/vmalloc.h>
 #include <linux/interrupt.h>
 #include <linux/string.h>
 #include <linux/pagemap.h>
@@ -85,6 +86,20 @@
 
 #define IXGB_ERR(args...) printk(KERN_ERR "ixgb: " args)
 
+/* TX/RX descriptor defines */
+#define DEFAULT_TXD	 256
+#define MAX_TXD   	4096
+#define MIN_TXD	  64
+
+/* hardware cannot reliably support more than 512 descriptors owned by
+ * hardware descrioptor cache otherwise an unreliable ring under heavy 
+ * recieve load may result */
+/* #define DEFAULT_RXD	   1024 */
+/* #define MAX_RXD	   4096 */
+#define DEFAULT_RXD	512
+#define MAX_RXD	512
+#define MIN_RXD	 64
+
 /* Supported Rx Buffer Sizes */
 #define IXGB_RXBUFFER_2048  2048
 #define IXGB_RXBUFFER_4096  4096
@@ -105,9 +120,9 @@
 struct ixgb_buffer {
 	struct sk_buff *skb;
 	uint64_t dma;
-	unsigned long length;
 	unsigned long time_stamp;
-	unsigned int next_to_watch;
+	uint16_t length;
+	uint16_t next_to_watch;
 };
 
 struct ixgb_desc_ring {
@@ -167,7 +182,6 @@
 	uint64_t hw_csum_rx_error;
 	uint64_t hw_csum_rx_good;
 	uint32_t rx_int_delay;
-	boolean_t raidc;
 	boolean_t rx_csum;
 
 	/* OS defined structs */
@@ -178,5 +192,8 @@
 	/* structs defined in ixgb_hw.h */
 	struct ixgb_hw hw;
 	struct ixgb_hw_stats stats;
+#ifdef CONFIG_PCI_MSI
+	boolean_t have_msi;
+#endif
 };
-#endif				/* _IXGB_H_ */
+#endif /* _IXGB_H_ */
drivers/net/ixgb/ixgb_ee.c +114 -78

469 lines not on this page · raw message

drivers/net/ixgb/ixgb_ethtool.c +332 -186

677 lines not on this page · raw message

drivers/net/ixgb/ixgb_hw.c +139 -92

531 lines not on this page · raw message

drivers/net/ixgb/ixgb_hw.h +30 -20

85 lines not on this page · raw message

drivers/net/ixgb/ixgb_ids.h +8 -13
diff -Nru a/drivers/net/ixgb/ixgb_ids.h b/drivers/net/ixgb/ixgb_ids.h
@@ -33,21 +33,16 @@
 ** The Device and Vendor IDs for 10 Gigabit MACs
 **********************************************************************/
 
-#define INTEL_VENDOR_ID         0x8086
-#define INTEL_SUBVENDOR_ID      0x8086
+#define INTEL_VENDOR_ID             0x8086
+#define INTEL_SUBVENDOR_ID          0x8086
 
-#define IXGB_DEVICE_ID_82597EX      0x1048
-#define IXGB_DEVICE_ID_82597EX_SR   0x1A48
 
-#define IXGB_SUBDEVICE_ID_A11F  0xA11F
-#define IXGB_SUBDEVICE_ID_A01F  0xA01F
+#define IXGB_DEVICE_ID_82597EX      0x1048   
+#define IXGB_DEVICE_ID_82597EX_SR   0x1A48   
+#define IXGB_DEVICE_ID_82597EX_LR   0x1B48
+#define IXGB_SUBDEVICE_ID_A11F      0xA11F   
+#define IXGB_SUBDEVICE_ID_A01F      0xA01F   
 
-#define IXGB_SUBDEVICE_ID_A15F  0xA15F
-#define IXGB_SUBDEVICE_ID_A05F  0xA05F
-
-#define IXGB_SUBDEVICE_ID_A12F  0xA12F
-#define IXGB_SUBDEVICE_ID_A02F  0xA02F
-
-#endif				/* #ifndef _IXGB_IDS_H_ */
+#endif /* #ifndef _IXGB_IDS_H_ */
 
 /* End of File */
drivers/net/ixgb/ixgb_main.c +357 -348

731 lines not on this page · raw message

drivers/net/ixgb/ixgb_osdep.h +5 -5
diff -Nru a/drivers/net/ixgb/ixgb_osdep.h b/drivers/net/ixgb/ixgb_osdep.h

Lines of this file are not shown. View the raw message.

drivers/net/ixgb/ixgb_param.c +155 -161

316 lines not on this page · raw message

drivers/net/s2io.c +18 -4
diff -Nru a/drivers/net/s2io.c b/drivers/net/s2io.c

Lines of this file are not shown. View the raw message.

drivers/net/s2io.h +2 -2
diff -Nru a/drivers/net/s2io.h b/drivers/net/s2io.h

Lines of this file are not shown. View the raw message.

drivers/net/smc-ultra.c +0 -2
diff -Nru a/drivers/net/smc-ultra.c b/drivers/net/smc-ultra.c

Lines of this file are not shown. View the raw message.

drivers/net/smc91x.c +16 -0
diff -Nru a/drivers/net/smc91x.c b/drivers/net/smc91x.c

Lines of this file are not shown. View the raw message.

drivers/net/wireless/orinoco.c +77 -126

203 lines not on this page · raw message

drivers/net/wireless/wl3501_cs.c +2 -2
diff -Nru a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c

Lines of this file are not shown. View the raw message.

include/linux/arcdevice.h +0 -1
diff -Nru a/include/linux/arcdevice.h b/include/linux/arcdevice.h

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.