• Jeff Garzik's avatar
    [netdrvr ixgb] massive update · 3c7fd9ca
    Jeff Garzik authored
    Since Intel agreed to submit further updates via broken-up patches
    like they do currently (and admirably) for e1000 and e100, I agreed
    to merge this update to bring the driver up to speed.
    
    Contributed by: Ayyappan.Veeraiyan@intel.com
    
    Changes:
    
    Features implemented
    
    *	Support for new 850nm adapters.
    *	Copyright notice updated to include year 2004.
    *	Fix for "ixgb does not maintain non-default MTU setting across a
    link loss" issue - When link loss happens in non-default MTU
    environment, driver will incorrectly operate with default 1500 MTU
    setting.
    *	Netpoll support added
    *	Ethtool support - status functionality, FlowControl interface,
    Checksum interface, TSO and Scatter Gather interfaces
    *	Race condition fix - Race condition (TX path) exists between
    ixgb_xmit_frame and clean_tx_irq routines in handling the queue.
    * 	Removed dead code segments (#if 0)
    
    
    Performance improvement features 
    *	Mod operator usage is removed - used to cause performance
    problems in non-IA architecture based machines
    *	Multiple ICR register read in ISR is avoided
    *	RS bit set on only 'end of packet' TX descriptors - to avoid
    multiple writebacks by controller for packets with multiple descriptors.
    *	RX descriptors prefetch is done - improved 1500 MTU TX
    performance
    
    
    All relevant e1000 driver cleanups ported to ixgb
    *	Valid error propagation in functions ixgb_up, ixgb_probe,
    ixgb_open. 
    * 	NAPI code cleanups
    * 	u8, u16 and u32 data types are changed to uint8_t, uint16_t and
    uint32_t respectively. We use these types on our shared code for
    multiple OSes and also to make it uniform with e1000 driver.
    *	Some functions in ixgb_main.c are moved to different location -
    This enables easy porting of e1000 bug fixes to ixgb 
    3c7fd9ca
ixgb_ee.c 22.1 KB