-
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