Skip to content

Commit

Permalink
r6040: fix link checking with switches
Browse files Browse the repository at this point in the history
The current link checking logic only works for one port, which is not correct
for swiches were multiple ports can have different link status. As a result
we would only check for link status on port 1 of the switch. Move the calls
to mii_check_media in r6040_timer which will be polling a single PHY chip
correctly and assume link is up for switches.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Florian Fainelli authored and David S. Miller committed May 18, 2010
1 parent b14ed88 commit ce26b4d
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions drivers/net/r6040.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,9 +400,6 @@ static void r6040_init_mac_regs(struct net_device *dev)
* we may got called by r6040_tx_timeout which has left
* some unsent tx buffers */
iowrite16(0x01, ioaddr + MTPR);

/* Check media */
mii_check_media(&lp->mii_if, 1, 1);
}

static void r6040_tx_timeout(struct net_device *dev)
Expand Down Expand Up @@ -530,8 +527,6 @@ static int r6040_phy_mode_chk(struct net_device *dev)
phy_dat = 0x0000;
}

mii_check_media(&lp->mii_if, 0, 1);

return phy_dat;
};

Expand Down Expand Up @@ -813,6 +808,9 @@ static void r6040_timer(unsigned long data)

/* Timer active again */
mod_timer(&lp->timer, round_jiffies(jiffies + HZ));

/* Check media */
mii_check_media(&lp->mii_if, 1, 1);
}

/* Read/set MAC address routines */
Expand Down

0 comments on commit ce26b4d

Please sign in to comment.