Rev.1.0 - Nov 30, 2007

This modified tsi108_eth driver improves performance of the Tsi108/9/10 Ethernet
controller by changing interrupt handling for frame receive path.
It reduces number of interrupts generated for received frames and therefore
lowers CPU utilization by the device driver.

The device driver patch was generated fo Linux kernel version 2.6.22.  

DETAILS OF CODE CHANGES:

The original version of the tsi108_eth.c driver enables interrupts for each
buffer descriptor in the receive loop. In some network traffic scenarios this
generates high number of interrupts which pushes CPU utilization by
the network task up to 90%.

The new version of the tsi108_eth.c driver implements SW controlled Rx interrupt
moderation by enabling interrupt generation for smaller number of receive buffer
descriptors. To ensure that there is no stalled Rx packet(s) the new code
implements timer routine that checks for incoming frames. Parameters of the
interrupt moderation mechanism are shown below (defined in tsi108_eth.c):
 
#define TSI108_RX_INT_FREQ    32
/* Timer interval to check the RX queue status */
#define CHECK_RX_INTERVAL	(HZ/50)

TSI108_RX_INT_FREQ defines an interrupt ratio for received frames.
    By default Rx interrupt is generated for every 32 frames.

CHECK_RX_INTERVAL defines how often timer routine has to be called to check for
    received frames which do not generate interrupts.
