• Roger Luethi's avatar
    [netdrvr via-rhine] various duplex-related fixes: · 8fa143ef
    Roger Luethi authored
    Fix the following bugs:
    - after a watchdog timeout (still a common thing with the Rhine), the
      driver will fall back to half-duplex, ignoring the auto-negotiation
      results, killing performance completely until the driver is reloaded;
      fixed by clearing full_duplex in init_registers()
    - driver considers only 0x200 for full-duplex option; now 0x220
    - duplex code used dev->name before it's initialized; code section moved
    
    The full_duplex and force_media related code is quite a mess, but this
    minimal fix will make the most annoying problems go away. Looking at some
    other code (e.g. mii.c) it seems to me the interaction between user force,
    autoneg results and full_duplex/force_media is amazingly complex, so I'll
    leave it at this for now.
    8fa143ef
via-rhine.c 53.1 KB