Commit cca87c18 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt Committed by Jeff Garzik

ibm_newemac: Increase MDIO timeouts

This patch doubles the MDIO timeouts in EMAC as there are field
cases where they are two short to communicate with some PHYs.
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 815b97c6
...@@ -738,7 +738,7 @@ static int __emac_mdio_read(struct emac_instance *dev, u8 id, u8 reg) ...@@ -738,7 +738,7 @@ static int __emac_mdio_read(struct emac_instance *dev, u8 id, u8 reg)
rgmii_get_mdio(dev->rgmii_dev, dev->rgmii_port); rgmii_get_mdio(dev->rgmii_dev, dev->rgmii_port);
/* Wait for management interface to become idle */ /* Wait for management interface to become idle */
n = 10; n = 20;
while (!emac_phy_done(dev, in_be32(&p->stacr))) { while (!emac_phy_done(dev, in_be32(&p->stacr))) {
udelay(1); udelay(1);
if (!--n) { if (!--n) {
...@@ -763,7 +763,7 @@ static int __emac_mdio_read(struct emac_instance *dev, u8 id, u8 reg) ...@@ -763,7 +763,7 @@ static int __emac_mdio_read(struct emac_instance *dev, u8 id, u8 reg)
out_be32(&p->stacr, r); out_be32(&p->stacr, r);
/* Wait for read to complete */ /* Wait for read to complete */
n = 100; n = 200;
while (!emac_phy_done(dev, (r = in_be32(&p->stacr)))) { while (!emac_phy_done(dev, (r = in_be32(&p->stacr)))) {
udelay(1); udelay(1);
if (!--n) { if (!--n) {
...@@ -810,7 +810,7 @@ static void __emac_mdio_write(struct emac_instance *dev, u8 id, u8 reg, ...@@ -810,7 +810,7 @@ static void __emac_mdio_write(struct emac_instance *dev, u8 id, u8 reg,
rgmii_get_mdio(dev->rgmii_dev, dev->rgmii_port); rgmii_get_mdio(dev->rgmii_dev, dev->rgmii_port);
/* Wait for management interface to be idle */ /* Wait for management interface to be idle */
n = 10; n = 20;
while (!emac_phy_done(dev, in_be32(&p->stacr))) { while (!emac_phy_done(dev, in_be32(&p->stacr))) {
udelay(1); udelay(1);
if (!--n) { if (!--n) {
...@@ -836,7 +836,7 @@ static void __emac_mdio_write(struct emac_instance *dev, u8 id, u8 reg, ...@@ -836,7 +836,7 @@ static void __emac_mdio_write(struct emac_instance *dev, u8 id, u8 reg,
out_be32(&p->stacr, r); out_be32(&p->stacr, r);
/* Wait for write to complete */ /* Wait for write to complete */
n = 100; n = 200;
while (!emac_phy_done(dev, in_be32(&p->stacr))) { while (!emac_phy_done(dev, in_be32(&p->stacr))) {
udelay(1); udelay(1);
if (!--n) { if (!--n) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment