• Ondrej Zary's avatar
    de2104x: fix TP link detection · ca9a7835
    Ondrej Zary authored
    Compex FreedomLine 32 PnP-PCI2 cards have only TP and BNC connectors but the
    SROM contains AUI port too. When TP loses link, the driver switches to
    non-existing AUI port (which reports that carrier is always present).
    
    Connecting TP back generates LinkPass interrupt but de_media_interrupt() is
    broken - it only updates the link state of currently connected media, ignoring
    the fact that LinkPass and LinkFail bits of MacStatus register belong to the
    TP port only (the chip documentation says that).
    
    This patch changes de_media_interrupt() to switch media to TP when link goes
    up (and media type is not locked) and also to update the link state only when
    the TP port is used.
    
    Also the NonselPortActive (and also SelPortActive) bits of SIAStatus register
    need to be cleared (by writing 1) after reading or they're useless.
    Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
    Acked-by: default avatarJeff Garzik <jgarzik@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ca9a7835
de2104x.c 53.8 KB