From 1a8657d429b57a4f8832ff677a0406eaa23b4768 Mon Sep 17 00:00:00 2001 From: Francois Romieu Date: Sat, 30 Jul 2005 13:15:01 +0200 Subject: [PATCH] --- yaml --- r: 6595 b: refs/heads/master c: fc10c39d7920b1db9ad2d80fa845896e529355dc h: refs/heads/master i: 6593: 272a7c9990ce67c1a987dbf5e1393716fbe63e89 6591: 06b61a00b4456d1a4dda38ecaaf318c619f389c4 v: v3 --- [refs] | 2 +- trunk/drivers/net/sis190.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 332b1fe7623c..9cdb48c0ef51 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9ede109bbe93d5bbe4271e346106847fbfea95a1 +refs/heads/master: fc10c39d7920b1db9ad2d80fa845896e529355dc diff --git a/trunk/drivers/net/sis190.c b/trunk/drivers/net/sis190.c index f78799c4235e..392110ede7b7 100644 --- a/trunk/drivers/net/sis190.c +++ b/trunk/drivers/net/sis190.c @@ -383,6 +383,12 @@ static int __mdio_read(struct net_device *dev, int phy_id, int reg) return mdio_read(tp->mmio_addr, phy_id, reg); } +static u16 mdio_read_latched(void __iomem *ioaddr, int phy_id, int reg) +{ + mdio_read(ioaddr, phy_id, reg); + return mdio_read(ioaddr, phy_id, reg); +} + static u16 __devinit sis190_read_eeprom(void __iomem *ioaddr, u32 reg) { u16 data = 0xffff; @@ -881,7 +887,8 @@ static void sis190_phy_task(void * data) if (val & BMCR_RESET) { // FIXME: needlessly high ? -- FR 02/07/2005 mod_timer(&tp->timer, jiffies + HZ/10); - } else if (!(mdio_read(ioaddr, phy_id, MII_BMSR) & BMSR_ANEGCOMPLETE)) { + } else if (!(mdio_read_latched(ioaddr, phy_id, MII_BMSR) & + BMSR_ANEGCOMPLETE)) { net_link(tp, KERN_WARNING "%s: PHY reset until link up.\n", dev->name); mdio_write(ioaddr, phy_id, MII_BMCR, val | BMCR_RESET);