[vortex] New driver - 0.99Q
Bogdan Costescu
Bogdan.Costescu@IWR.Uni-Heidelberg.De
Tue, 16 May 2000 15:05:44 +0200 (CEST)
Dear Mr. Becker,
It would have been nice to have an announcement on this list (like there
used to be) plus a detailed list of changes. I will do it this time.
1. Polling mode added for capable cards (Cyclone/Tornado). This is done
through a new register (DownPollRate = 0x2d in MasterCtrl, page 100 in C
docs) and two new variables
polling:1 - to be set if polling mode is enabled,
long last_reset - to be set to the jiffies value of the last Tx
reset
In vortex_open, when (full_bus_master_tx && (! IS_BOOMERANG)), set the
DownPollRate to 20 (in units of 320 ns).
In vortex_timer, detect blocked interrupts. If true, check for polling
mode (which should be true, except the first time vortex_timer is called)
and then call vortex_interrupt and set the next timer call at jiffies+2;
if not true (no blocked interrupt), call vortex_tx_timeout. In case of
repeated blocked interrupt, vortex_interrupt is called every 2 jiffies.
In boomerang_start_xmit, if ! IS_BOOMERANG and cur_tx == 0 (this happens
only for the first queued packet) write the DPD to the card; it's only
necessary to write the first DPD to the card in polling mode.
2. Default switched back to I/O based as opposed to mem-based access.
3. For Tornado cards, don't print "INVALID CHECKSUM".
4. Added HAS_NWAY for Tornado cards in pci_tbl.
My comments:
1. - Why do we keep calling vortex_interrupt in case of physically blocked
interrupts? It's the same case as in vortex_tx_timeout - we give the
impression that the network is working (with lousy performance) when in
fact it doesn't.
- How was the DownPollRate value chosen?
2. Why was the mode changed back to I/O based? Are there problems with
mem-based access or just to be have the default mode compatible with EISA
cards?
3. Whouldn't be better computing the correct checksum for Tornado?
Sincerely,
Bogdan Costescu
IWR - Interdisziplinaeres Zentrum fuer Wissenschaftliches Rechnen
Universitaet Heidelberg, INF 368, D-69120 Heidelberg, GERMANY
Telephone: +49 6221 54 8869, Telefax: +49 6221 54 8868
E-mail: Bogdan.Costescu@IWR.Uni-Heidelberg.De