diff mbox

[2/4] r6040: check PHY status when bringing interface up

Message ID 200901071740.38060.florian@openwrt.org
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Florian Fainelli Jan. 7, 2009, 4:40 p.m. UTC
From: Florian Fainelli <florian@openwrt.org>
Subject: [PATCH 2/4] 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>
---
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

David Miller Jan. 8, 2009, 7:02 p.m. UTC | #1
From: Florian Fainelli <florian@openwrt.org>
Date: Wed, 7 Jan 2009 17:40:37 +0100

> 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>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 3e685d7..a59efbd 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -1107,6 +1107,10 @@  static int __devinit r6040_init_one(struct pci_dev *pdev,
 		err = -EIO;
 		goto err_out_free_res;
 	}
+	/* If PHY status change register is still set to zero it means the
+	 * bootloader didn't initialize it */
+	if (ioread16(ioaddr + PHY_CC) == 0)
+		iowrite16(0x9f07, ioaddr + PHY_CC);
 
 	/* Init system & device */
 	lp->base = ioaddr;