[vortex] 3c905CX things

Bogdan Costescu bogdan.costescu@iwr.uni-heidelberg.de
Fri, 5 Jan 2001 09:42:38 +0100 (CET)


On Fri, 5 Jan 2001, Andrew Morton wrote:

> Well, the chip is in a different state.  It could be that
> the RxReset in this state is quick.  Dunno.

Or slower 8-( Anyway, failure to finish the RxReset completely in
vortex_error would show up quickly, as the NIC will not receive packets
anymore...

> Basically, yes.  Busywaiting for tens of milliseconds is rude.

But the init sequence should be done in order. vortex_open() will not
finish faster. AFAIK, ifconfig waits for vortex_open() to return, so there
is no advantage in the start-up sequence (like init-ing more interfaces at
the same time). The only difference is that is frees the CPU and the bus;
for a normal power-on sequence, this should not make much difference,
however, for insmod/rmmod later, it will.

> > How about vortex_error which is called from ISR ?
> We'd have to busywait, or turn the driver inside out.

Yep.

>             if (phy == 0)
>                 phyx = 24;
>             else if (phy <= 24)
>                 phyx = phy - 1;
>             else
>                 phyx = phy;

This is 24, 0->23, 25->31. Don has said in a previous thread that 0 should
be checked last, that's why I proposed it that way. Because we only need
to detect one transceiver, if the transceiver at 24 was not detected at
the first iteration, it should not appear at the 25th, so I thought that
it's safe to have 24, 1->31, 0.

> Why was that ever needed?

It seems that some older generation cards need to have this read in order
for the MII detection routine to work; otherwise, bogus results appear
(like now with CXs).

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