ethernet:lpc32xx:Ethernet PHY timeout fix
authorMattRedfearn <matt.redfearn@xxx.com>
Mon, 9 Apr 2012 22:16:50 +0000 (22:16 +0000)
committerBangaragiri G <bangaragiri.g@nxp.com>
Mon, 9 Apr 2012 22:16:50 +0000 (22:16 +0000)
commit6e75ec0bf004f0df467e3383b2054f9b46e9f76a
treef00d95b528cead3de26662e1957eed2d3a7ee8a5
parent7765def2a1f3d5530bde122b9a32014a642b865f
ethernet:lpc32xx:Ethernet PHY timeout fix

The lpc_mdio_read() function returns an EIO before the final
lpc_net_hard_start_xmit() is called. It turns out that this is because
jiffies rolls over 5 minutes after boot. On a build with my gcc-4.6.1
toolchain, the phy just happens to get polled at a point when jiffies is
0xFFFFFFF8. Timeout therefore becomes +2 and the timeout comparison
fails immediately. The function returns an error and does not set
LPC_ENET_MCMD back to 0. I guess this means that the phy can no longer
receive packets, hence the crc errors. The atached patch fixes the
issue.

Signed-off-by: Bangaragiri G <bangaragiri.g@nxp.com>
drivers/net/lpc_eth.c