From fefa931af5a3aa7317e52cb9344caa5b76347889 Mon Sep 17 00:00:00 2001 From: Daniel Hellstrom Date: Fri, 14 Jan 2011 03:02:41 +0000 Subject: [PATCH] --- yaml --- r: 231239 b: refs/heads/master c: 2436af8ca7a6c4679cf7da7e3867f1d5cd8528b7 h: refs/heads/master i: 231237: 5e2ffbc370387622167445845f8077e4e5a952ea 231235: 357c6d03f9b4df4120de214da761584fae22b158 231231: de9a587ddd21b9763fd49b3dd24d66fc0d0b19f5 v: v3 --- [refs] | 2 +- trunk/drivers/net/greth.c | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 044d6ff04015..ced418ccaa3d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b669e7f0580f3c0058f1b32c276ef6da8f05c138 +refs/heads/master: 2436af8ca7a6c4679cf7da7e3867f1d5cd8528b7 diff --git a/trunk/drivers/net/greth.c b/trunk/drivers/net/greth.c index 9386bce9dea5..e48d18216cbe 100644 --- a/trunk/drivers/net/greth.c +++ b/trunk/drivers/net/greth.c @@ -1232,29 +1232,26 @@ static void greth_link_change(struct net_device *dev) struct greth_private *greth = netdev_priv(dev); struct phy_device *phydev = greth->phy; unsigned long flags; - int status_change = 0; + u32 ctrl; spin_lock_irqsave(&greth->devlock, flags); if (phydev->link) { if ((greth->speed != phydev->speed) || (greth->duplex != phydev->duplex)) { - - GRETH_REGANDIN(greth->regs->control, - ~(GRETH_CTRL_FD | GRETH_CTRL_SP | GRETH_CTRL_GB)); + ctrl = GRETH_REGLOAD(greth->regs->control) & + ~(GRETH_CTRL_FD | GRETH_CTRL_SP | GRETH_CTRL_GB); if (phydev->duplex) - GRETH_REGORIN(greth->regs->control, GRETH_CTRL_FD); - - if (phydev->speed == SPEED_100) { - - GRETH_REGORIN(greth->regs->control, GRETH_CTRL_SP); - } + ctrl |= GRETH_CTRL_FD; + if (phydev->speed == SPEED_100) + ctrl |= GRETH_CTRL_SP; else if (phydev->speed == SPEED_1000) - GRETH_REGORIN(greth->regs->control, GRETH_CTRL_GB); + ctrl |= GRETH_CTRL_GB; + GRETH_REGSAVE(greth->regs->control, ctrl); greth->speed = phydev->speed; greth->duplex = phydev->duplex; status_change = 1;