• Sergei Shtylyov's avatar
    sh_eth: fix handling of no LINK signal · 1e1b812b
    Sergei Shtylyov authored
    The code handling the absent LINK signal (or the absent PSR register -- which
    reflects the state of this signal) is quite naive and has probably never really
    worked.  It's probably enough to say that this code is executed only on the LINK
    change interrupt (sic!) but even if we actually have the signal and choose to
    ignore it (it might be connected to PHY's link/activity LED output as on the
    Renesas BOCK-W board), sh_eth_adjust_link() on which this code relies to update
    'mdp->link' gets executed later than the LINK change interrupt where it is
    checked, and so RX/TX never get enabled via ECMR register.
    
    So, ignore the LINK changed interrupt iff LINK signal is absent (or just chosen
    not to be used) or PSR register is absent, and enable/disable RX/TX directly in
    sh_eth_adjust_link() in this case.
    Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1e1b812b
sh_eth.c 61.3 KB