From: Roger Luethi <rl@hellgate.ch>

PHYs may come up isolated.  Make sure we can send data to them.  This code
section needs a clean-up, but I prefer to merge this fix in isolation.

Report and suggested fix by Tam, Ming Dat (Tommy).

Signed-off-by: Roger Luethi <rl@hellgate.ch>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/via-rhine.c |    3 +++
 1 files changed, 3 insertions(+)

diff -puN drivers/net/via-rhine.c~via-rhine-de-isolate-phy drivers/net/via-rhine.c
--- 25/drivers/net/via-rhine.c~via-rhine-de-isolate-phy	2004-08-08 13:51:47.971733472 -0700
+++ 25-akpm/drivers/net/via-rhine.c	2004-08-08 13:51:47.975732864 -0700
@@ -896,7 +896,10 @@ static int __devinit rhine_init_one(stru
 	pci_set_drvdata(pdev, dev);
 
 	{
+		u16 mii_cmd;
 		int mii_status = mdio_read(dev, phy_id, 1);
+		mii_cmd = mdio_read(dev, phy_id, MII_BMCR) & ~BMCR_ISOLATE;
+		mdio_write(dev, phy_id, MII_BMCR, mii_cmd);
 		if (mii_status != 0xffff && mii_status != 0x0000) {
 			rp->mii_if.advertising = mdio_read(dev, phy_id, 4);
 			printk(KERN_INFO "%s: MII PHY found at address "
_