]> git.baikalelectronics.ru Git - kernel.git/commit
sh_eth: fix handling of no LINK signal
authorSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Sun, 31 Mar 2013 09:50:07 +0000 (09:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 31 Mar 2013 23:42:33 +0000 (19:42 -0400)
commitc47541367e8d1035aceca8fafdfae8963b1082ab
tree70dd800eaa9af831acf96284c3bc7d13e562f581
parent48caf6bdd125ef968ae638b3b66bf7ad6f9b9261
sh_eth: fix handling of no LINK signal

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: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/sh_eth.c