diff options
author | Florian Fainelli <florian@openwrt.org> | 2009-01-08 14:01:58 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-08 14:01:58 -0500 |
commit | 84314bf92265bccea601ed75ec93944e1a36dd81 (patch) | |
tree | 093a10ce34f302eaa0684d40688b049167e84a5c /drivers/net/r6040.c | |
parent | 9a48ce84004eb61940850c7066af5d222a5f81c9 (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.c | 4 |
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; |