Subject: Problem in phy.c, when using fixed network speed

From: Michael Koch <[email-masked]>
Date: Wed, 01 Aug 2012 20:14:44 +0200

Hi all,
during testing i encountered a problem with setting up a 5200B 
controller with a MICREL phy at static 100MBit full duplex - without 
autonegotiation.

I performed this as usual with ethtool and was succesful when i had my 
link partner up, providing a link.

When kepping the link partner off, meaning no link at all, my machine 
started to degrade its link capabilities ending 10MBit half duplex.

I tracked it down to drivers/net/phy/phy.c:
in the function phy_state_machine, the case block PHY_FORCING causes 
this (at least for me) undesired behaviour. Calling the 
phy_force_reduction function degrades actually an intentionally static 
setup.

I deactivated those lines, and it works for me.

But anyhow i feel soe need to have a general solution that takes static 
non autonagotiation setups into account.

What do you think?

Hope to hear from you

Michael