[vortex-bug] Minor bug in 3c59x driver in 2.4.0-test8 ???

Bogdan Costescu Bogdan.Costescu@IWR.Uni-Heidelberg.De
Mon, 11 Sep 2000 13:16:31 +0200 (CEST)


On Sun, 10 Sep 2000, Lance Stringham wrote:

> /* Set the full-duplex bit. */
> outw(	((vp->info1 & 0x8000) || vp->full_duplex ? 0x20 : 0) |

I assume you talk about this ^^^^.

> Shouldn't it be an && instead of an || ? I tried changing it to && and
> now I don't seem to have any problems changing the duplex mode to
> whatever I need.

It should be ||. There are 2 ways of setting the full duplex mode: if the
card supports it (which is located in info1) and if the users forces it
(through full_duplex, although full_duplex is modified in several places).
So the logic is that if either the card supports it or the user forces it,
it should be enabled. If you modify this to be && and it works to
_force_ it, it means that your info1 does not contain the full duplex
info.

If you have a hub (which does not support full-duplex), the card should be
able to autonegotiate half duplex. What is the initialization message from
the driver (from /var/log/messages) ?

Andrew: I think that something has to be done w.r.t. this. You are setting
the full duplex operation based on _both_ info1 and full_duplex, but set
flow control based only on full_duplex. IMHO, the info from info1 should
be incorporated in full_duplex and the test should be made afterwards only
on full_duplex.

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