Subject: Re: [patch 3/8] sundance: remove TxStartThresh and RxEarlyThresh

From: Philippe De Muyter <[email-masked]>
Date: Mon, 23 Oct 2006 00:05:52 +0200

On Fri, Oct 20, 2006 at 02:42:05PM -0700, [email-masked] wrote:
> From: Jesse Huang <[email-masked]>
> For patent issue need to remove TxStartThresh and RxEarlyThresh.  This patent
> is cut-through patent.  If use this function, Tx will start to transmit after
> few data be move in to Tx FIFO.  We are not allow to use those function in
> DFE530/DFE550/DFE580/DL10050/IP100/IP100A.  It will decrease a little
> performance.
[...]
> @@ -1111,6 +1109,7 @@ static irqreturn_t intr_handler(int irq,
>  	int tx_cnt;
>  	int tx_status;
>  	int handled = 0;
> +	int i;

What the use here of adding this variable ? Is that actually a part of another
patch ?

>  
>  
>  	do {
> @@ -1153,17 +1152,14 @@ static irqreturn_t intr_handler(int irq,
>  						np->stats.tx_fifo_errors++;
>  					if (tx_status & 0x02)
>  						np->stats.tx_window_errors++;
> +
>  					/*
>  					** This reset has been verified on
>  					** DFE-580TX boards ! [email-masked].
>  					*/
>  					if (tx_status & 0x10) {	/* TxUnderrun */
> -						unsigned short txthreshold;
> -
> -						txthreshold = ioread16 (ioaddr + TxStartThresh);
>  						/* Restart Tx FIFO and transmitter */
>  						sundance_reset(dev, (NetworkReset|FIFOReset|TxReset) << 16);
> -						iowrite16 (txthreshold, ioaddr + TxStartThresh);

I must be dense, but I do not understand how merely preserving the value of
a register across a reset can infringe on any patent

Philippe