aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/r6040.c
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2009-01-08 14:01:58 -0500
committerDavid S. Miller <davem@davemloft.net>2009-01-08 14:01:58 -0500
commit84314bf92265bccea601ed75ec93944e1a36dd81 (patch)
tree093a10ce34f302eaa0684d40688b049167e84a5c /drivers/net/r6040.c
parent9a48ce84004eb61940850c7066af5d222a5f81c9 (diff)
r6040: check PHY status when bringing interface up
This patch makes the driver properly initialize the PHY status if not correctly set by the bootloader/BIOS. It prevents some boards to bring up the link on boot. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/r6040.c')
-rw-r--r--drivers/net/r6040.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 92b14c871351..7ac6fede6e6d 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -1121,6 +1121,10 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
1121 err = -EIO; 1121 err = -EIO;
1122 goto err_out_free_res; 1122 goto err_out_free_res;
1123 } 1123 }
1124 /* If PHY status change register is still set to zero it means the
1125 * bootloader didn't initialize it */
1126 if (ioread16(ioaddr + PHY_CC) == 0)
1127 iowrite16(0x9f07, ioaddr + PHY_CC);
1124 1128
1125 /* Init system & device */ 1129 /* Init system & device */
1126 lp->base = ioaddr; 1130 lp->base = ioaddr;