e100: e100_phy_init() isolates selected PHY, causes 10 second boot delay
authorBruce Allan <bruce.w.allan@intel.com>
Thu, 29 Oct 2009 13:42:41 +0000 (13:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Oct 2009 05:48:31 +0000 (22:48 -0700)
commit8fbd962e39517dfb2bfd363eba4b51cdfa299593
tree90ac9d3448f10d5bcde2f748b9f729277302a026
parentb5dd884e682cae6b8c037f9d11f3b623b4cf2011
e100: e100_phy_init() isolates selected PHY, causes 10 second boot delay

A change in how PHYs are electrically isolated caused all PHYs to be
isolated followed by reverting that isolation for the selected PHY.
Unfortunately, isolating the selected PHY for even a short period of
time can result in DHCP negotiation taking more than 10 seconds on certain
embedded configurations delaying boot time as reported by Bernhard Kaindl.
This patch reverts the change to how PHYs are isolated yet still works
around the issue for 82552 needing the selected PHY's BMCR register to
be written after the unused PHYs are isolated.  This code is moved below
the setting of nic->phy ID in order to do the 82552-specific workaround.

Cc: Bernhard Kaindl <bernhard.kaindl@gmx.net>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/e100.c