]> 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)
commit0ef6983cbb849dc19df6f8e853e89d4a1582fc2d
tree70dd800eaa9af831acf96284c3bc7d13e562f581
parent53ea4cbdf8582ce757540b91cc24d98790dfd70b
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