net/smsc911x: Check if PHY is in operational mode before software reset
authorJavier Martinez Canillas <javier@dowhile0.org>
Tue, 3 Jan 2012 13:36:19 +0000 (13:36 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 4 Jan 2012 01:24:15 +0000 (20:24 -0500)
SMSC LAN generation 4 chips integrate an IEEE 802.3 ethernet physical layer.
The PHY driver for this integrated chip enable an energy detect power-down mode.
When the PHY is in a power-down mode, it prevents the MAC portion chip to be
software reseted.

That means that if we compile the kernel with the configuration option SMSC_PHY
enabled and try to bring the network interface up without an cable plug-ed the
PHY will be in a low power mode and the software reset will fail returning -EIO
to user-space:

root@igep00x0:~# ifconfig eth0 up
ifconfig: SIOCSIFFLAGS: Input/output error

This patch disable the energy detect power-down mode before trying to software
reset the LAN chip and re-enables after it was reseted successfully.

Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

No differences found