2.6.x net driver updates (updated)
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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_param.c +155 -161
316 lines not on this page · raw message
drivers/net/wireless/orinoco.c +77 -126
203 lines not on this page · 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.