aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/gianfar.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/gianfar.c')
-rw-r--r--drivers/net/gianfar.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index ea530673236e..acae2d8cd688 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -351,6 +351,9 @@ static int gfar_probe(struct of_device *ofdev,
351 /* Reset MAC layer */ 351 /* Reset MAC layer */
352 gfar_write(&priv->regs->maccfg1, MACCFG1_SOFT_RESET); 352 gfar_write(&priv->regs->maccfg1, MACCFG1_SOFT_RESET);
353 353
354 /* We need to delay at least 3 TX clocks */
355 udelay(2);
356
354 tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW); 357 tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW);
355 gfar_write(&priv->regs->maccfg1, tempval); 358 gfar_write(&priv->regs->maccfg1, tempval);
356 359
@@ -1423,15 +1426,11 @@ static void gfar_vlan_rx_register(struct net_device *dev,
1423{ 1426{
1424 struct gfar_private *priv = netdev_priv(dev); 1427 struct gfar_private *priv = netdev_priv(dev);
1425 unsigned long flags; 1428 unsigned long flags;
1426 struct vlan_group *old_grp;
1427 u32 tempval; 1429 u32 tempval;
1428 1430
1429 spin_lock_irqsave(&priv->rxlock, flags); 1431 spin_lock_irqsave(&priv->rxlock, flags);
1430 1432
1431 old_grp = priv->vlgrp; 1433 priv->vlgrp = grp;
1432
1433 if (old_grp == grp)
1434 return;
1435 1434
1436 if (grp) { 1435 if (grp) {
1437 /* Enable VLAN tag insertion */ 1436 /* Enable VLAN tag insertion */