Forgot about this one...

Yisrael yhersch@allot.com
Sun Jan 30 08:38:42 2000


Donald and friends,

I forgot about another question I had...

Here's another section of code from the speedo_tx_timeout routine
(again). What I don't understand is that in line 03 you "and" zero
("0") with the condition which ensures that this condition will
never be met.

Well, it's obvious that you're interested in bypassing the command
unit restart. The question is, Why? Do you suspect that the CU restart
(restarting the transmitter) doesn't work properly? Or maybe the
PortReset is more effective? Was this just an experiment? Or do you
really think that the CU restart is deficient in some way?

01    speedo_show_state(dev);
02    if ((status & 0x00C0) != 0x0080
03        &&  (status & 0x003C) == 0x0010  &&  0) {
04          /* Only the command unit has stopped. */
05          printk(KERN_WARNING "%s: Trying to restart the
transmitter...\n",
06                    dev->name);
07          outl(virt_to_bus(&sp->tx_ring[sp->dirty_tx % TX_RING_SIZE]),
08                 ioaddr + SCBPointer);
09          outw(CUStart, ioaddr + SCBCmd);
10    } else {
11          /* Reset the Tx and Rx units. */
12          outl(PortReset, ioaddr + SCBPort);
13          if (speedo_debug > 0)
14                speedo_show_state(dev);
15          udelay(10);
16          speedo_resume(dev);
17    }

Thanks and take care,

Yisrael (Russ) Hersch
Allot Communications

-------------------------------------------------------------------
To unsubscribe send a message body containing "unsubscribe"
to linux-eepro100-request@beowulf.org